การเพิ่มคุณสมบัติใน jQuery


271

ฉันจะเพิ่มคุณสมบัติลงในแท็ก HTML เฉพาะใน jQuery ได้อย่างไร

ตัวอย่างเช่น HTML ง่ายๆนี้:

<input id="someid" />

จากนั้นเพิ่มแอตทริบิวต์ที่ปิดใช้งาน = "จริง" เช่นนี้:

<input id="someid" disabled="true" />

มีความเป็นไปได้ที่ซ้ำกันของวิธีเพิ่มแอตทริบิวต์ HTML ด้วย jQuery
Chris Laplante

คำตอบ:


520

คุณสามารถเพิ่มคุณสมบัติโดยใช้attrเช่น:

$('#someid').attr('name', 'value');

อย่างไรก็ตามสำหรับ DOM คุณสมบัติชอบchecked, disabledและreadonlyวิธีที่เหมาะสมในการทำเช่นนี้ ( ณ JQuery 1.6) propคือการใช้งาน

$('#someid').prop('disabled', true);

28
สำหรับฉัน$('#someid').prop('disabled', true);ไม่ทำงาน แต่ใช้$('#someid').attr('disabled', true);งานได้ดี
VukašinManojlović

4
เห็นด้วยกับ @ VukašinManojlović .. สำหรับฉันเหมือนกัน
sstauross

3
ก่อนที่คุณจะตัดสินใจว่าคุณจะใช้งานattrหรือpropเป็นสิ่งสำคัญที่จะต้องเข้าใจความแตกต่างระหว่างคุณสมบัติและคุณสมบัติ หากไม่มีความเข้าใจในความแตกต่างคุณจะพบกับพฤติกรรมที่ไม่คาดคิด ดูstackoverflow.com/a/6004028/3367343
Travis Hohl

prop สามารถใช้แทน attr ได้หรือไม่? หรือใช้เฉพาะในกรณีพิเศษเท่านั้น?
Chaudhry Waqas

41

ทางออกที่ดีที่สุด:จาก jQuery v1.6 คุณสามารถใช้ prop ()เพื่อเพิ่มคุณสมบัติ

$('#someid').prop('disabled', true);

เพื่อลบออกให้ใช้ removeProp()

$('#someid').removeProp('disabled');

Reference

นอกจากนี้โปรดทราบว่าไม่ควรใช้วิธีการ. RemoveProp () เพื่อตั้งค่าคุณสมบัติเหล่านี้เป็นเท็จ เมื่อลบคุณสมบัติดั้งเดิมแล้วจะไม่สามารถเพิ่มได้อีก ดู .removeProp () สำหรับข้อมูลเพิ่มเติม


29

คุณสามารถทำได้ด้วย.attrฟังก์ชั่นของ jQuery ซึ่งจะตั้งค่าคุณสมบัติ การลบออกทำได้ผ่าน.removeAttrฟังก์ชั่น

//.attr()
$("element").attr("id", "newId");
$("element").attr("disabled", true);

//.removeAttr()
$("element").removeAttr("id");
$("element").removeAttr("disabled");

1
โบนัสสำหรับการรวมฟังก์ชั่นลบ!
BoatCode





0

นี่อาจเป็นประโยชน์มากขึ้น ....

$("element").prop("id", "modifiedId");
//for boolean
$("element").prop("disabled", true);
//also you can remove attribute
$('#someid').removeProp('disabled');

คุณสมบัติและคุณสมบัติไม่เหมือนกันทุกประการ ตัวอย่างเช่น "id" เป็นแอตทริบิวต์ไม่ใช่คุณสมบัติ คุณใช้.attr()เพื่อตั้งค่าหรืออ่านมัน ดูย่อหน้า "คุณสมบัติเทียบกับคุณสมบัติ" ภายใต้. prop ()และ . attr ()ในเอกสาร jQuery ดูคำตอบของ Paul Rosaniaด้านบน
jkdev


0

ใช้รหัสนี้ <script> $('#someid').attr('disabled,'true'); </script>


มันจะดีกว่านี้ถ้าคุณมีคำอธิบายบางอย่าง
mooga

เพียงรวมลิงก์ jQuery หลังจากเขียนโค้ด<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> ข้อความภายใน $ symbol เลือกองค์ประกอบทั้งหมดด้วย id = someid ปิดการใช้งานคุณลักษณะของ id นี้เปลี่ยนเป็นจริง
Vildan Bina
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.