addID ใน jQuery?


87

มีวิธีใดบ้างที่สามารถเพิ่ม ID ได้เช่นเดียวกับการเพิ่มคลาส - addClass ()?


addClass () ไม่ใช่ตัวเลือก ตัวเลือกคือสิ่งที่กำหนดเป็นองค์ประกอบก่อนที่จะทำบางสิ่งกับ / กับมัน addClass () เป็นวิธีการที่มีการดำเนินการกับบางสิ่งบางอย่าง
Phish

1
คุณสามารถแทนที่คำว่า 'selector' สำหรับ 'functionnality' ในคำถามของคุณได้หรือไม่?
Milche Patern

อาจซ้ำกันของการเพิ่มแอตทริบิวต์ใน jQuery
Makyen

คำตอบ:


184

ID เป็นแอตทริบิวต์คุณสามารถตั้งค่าได้ด้วยฟังก์ชันattr :

$(element).attr('id', 'newID');

ฉันไม่แน่ใจว่าคุณหมายถึงอะไรเกี่ยวกับการเพิ่ม IDเนื่องจากองค์ประกอบสามารถมีได้เพียงตัวระบุเดียวและตัวระบุนี้ต้องไม่ซ้ำกัน


1
ฉันไม่แน่ใจว่าสิ่งนี้ตอบคำถามอย่างไร สิ่งนี้ไม่ได้เพิ่ม ID แต่จะตั้งค่าหนึ่งซึ่งอาจแตกต่างอย่างมากหากคุณใช้ ID แบบไดนามิก
Ian S

การตีความคำถามของฉัน: ดูที่<div>ไม่มี ID และหากเหตุผลใดก็ตามที่คุณไม่สามารถเพิ่ม ID ด้วยมือคุณอาจต้องการเพิ่ม ID โดยอัตโนมัติด้วย Javascript / jQuery
PJ Brunet

13

คุณหมายถึงวิธีการหรือไม่?

$('div.foo').attr('id', 'foo123');

ระวังอย่าตั้งค่าองค์ประกอบหลายรายการให้เป็นรหัสเดียวกัน


9

แบบนี้ :

var id = $('div.foo').attr('id');
$('div.foo').attr('id', id + ' id_adding');
  1. รับ ID จริง
  2. ใส่รหัสแอคทูเอลและเพิ่มรหัสใหม่

ฉันไม่แน่ใจว่านี่คือสิ่งที่ OP ต้องการ ... แต่ที่สำคัญมีidค่าแอตทริบิวต์ได้เพียง 1 ค่าเท่านั้น โดยเฉพาะอย่างยิ่งข้อมูลจำเพาะสำหรับidแอตทริบิวต์ระบุอย่างชัดเจนว่าต้องไม่มีช่องว่าง: w3.org/TR/html401/types.html#type-name
scunliffe

1

ฉันเคยใช้สิ่งนี้มาก่อนซึ่งกล่าวถึง @scunliffes กังวล พบอินสแตนซ์ทั้งหมดของรายการที่มีคลาส (ในกรณีนี้คือ. ปุ่ม) และกำหนด ID และต่อท้ายดัชนีเข้ากับชื่อ id:

$(".button").attr('id', function (index) {
	return "button-" + index;
});

สมมติว่าคุณมี 3 รายการที่มีชื่อคลาสเป็น. ปุ่มบนหน้า ผลลัพธ์จะเป็นการเพิ่ม ID ที่ไม่ซ้ำกันให้กับทุกคน (นอกเหนือจากคลาสของ "ปุ่ม")

ในกรณีนี้คือ # button-0, # button-1, # button-2 ตามลำดับ สิ่งนี้มีประโยชน์มาก เพียงแทนที่ ".button" ในบรรทัดแรกด้วยคลาสใดก็ได้ที่คุณต้องการกำหนดเป้าหมายและแทนที่ "button" ในคำสั่ง return ด้วยสิ่งที่คุณต้องการให้เป็น ID เฉพาะของคุณ หวังว่านี่จะช่วยได้!

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