jQuery เปลี่ยนค่าข้อความตัวอักษร


155

ฉันไม่พบตัวเลือกที่เหมาะสมสำหรับ:

<input maxlength="6" size="6" id="colorpickerField1" name="sitebg" value="#EEEEEE" type="text">

ฉันต้องการเปลี่ยนค่าเป็น = 000000 ฉันต้องการตัวเลือกเพื่อค้นหา "ชื่อ" ไม่ใช่ id ของการป้อนข้อความ

ไม่ควรทำงานนี้:

$("text.sitebg").val("000000");

โซลูชันที่นำเสนอใช้งานไม่ได้มีปัญหาอะไรกับสิ่งนี้

$.getJSON("http://www.mysitehere.org/wp-content/themes/ctr-theme/update_genform.php",function(data) {
    $("#form1").append(data.sitebg);
    $('input.sitebg').val('000000');
});

ข้อมูล JSON ทำงานอย่างถูกต้อง แนวคิดคือการส่งต่อค่า JSON ในภายหลังในรูปแบบค่าข้อความ แต่ไม่ทำงาน :(

คำตอบ:


308

ไม่คุณต้องทำสิ่งที่ชอบ:

$('input.sitebg').val('000000');

แต่คุณควรใช้รหัสเฉพาะถ้าคุณทำได้

นอกจากนี้คุณยังสามารถเจาะจงมากขึ้นเช่น:

$('input[type=text].sitebg').val('000000');

แก้ไข:

ทำสิ่งนี้เพื่อค้นหาอินพุตของคุณตามแอ็ตทริบิวต์ชื่อ:

$('input[name=sitebg]').val('000000');

ฉันจะยอมรับ awnser นี้คุณสามารถแนะนำหนังสือ / บทช่วยสอนที่ดี (ควรเป็นหนังสือ) เกี่ยวกับ jquery ที่ฉันสามารถเรียนรู้เกี่ยวกับตัวเลือกได้หรือไม่? ตัวเลือกรูปแบบโดยเฉพาะอย่างยิ่ง?
Joricam

7
นี่คือสิ่งที่ดีที่สุดบนอินเทอร์เน็ตในอนาคต
Jason

@ Jason ลิงก์เสียชื่อหนังสือเล่มโปรดคืออะไร?
oyalhi

@oyalhi โอ้ไม่! ฉันขอโทษ. ที่แสดงความคิดเห็นเป็น 5 ปีดังนั้นผมคิดว่าพวกเขาเอามันลง :(
เจสัน

@ Jason ใช่น่าเสียดาย อย่างไรก็ตามคุณจำชื่อหนังสือได้หรือไม่
oyalhi

31

วิธี jQuery เพื่อเปลี่ยนค่าในช่องใส่ข้อความคือ:

$('#colorpickerField1').attr('value', '#000000')

สิ่งนี้จะเปลี่ยนแอตทริบิวต์valueสำหรับองค์ประกอบ DOM ที่มี ID #colorpickerField1จาก#EEEEEEเป็น#000000


26

แนวปฏิบัติที่เหมาะสมที่สุดคือการใช้การระบุโดยตรง:

$('#id').val('xxx');


เรียบง่ายและดีที่สุด :)
MRRaja

2
ทำไมถึงใช้งานได้ แต่ใช้document.getElementById("#id").value = 'xxx';ไม่ได้สำหรับฉัน มันไม่เปลี่ยนค่าข้อความที่ปรากฏเพียงคุณสมบัติค่าขององค์ประกอบ DOM
user3494047

1
คุณใช้วิธี ById อยู่แล้ว # คือสัญลักษณ์ css ย้ายมัน.
Scott Chu

9

เมื่อตั้งค่าองค์ประกอบใหม่คุณจะต้องเปลี่ยนทริกเกอร์การโทร

$('element').val(newValue).trigger('change');


นี่เป็นปัญหาสำหรับฉันที่ตัวจัดการเหตุการณ์การเปลี่ยนแปลงถูกเรียกสองครั้ง หนึ่งครั้งด้วยค่าใหม่และจากนั้นอีกครั้งด้วย [attr = val]
Peter Lenjo

3

เพียงเพิ่มคำตอบของ Jason .ตัวเลือกนี้ใช้สำหรับคลาสเท่านั้น หากคุณต้องการเลือกอย่างอื่นที่ไม่ใช่องค์ประกอบ id หรือคลาสคุณต้องล้อมด้วยเครื่องหมายวงเล็บเหลี่ยม

เช่น

$('element[attr=val]')

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.