ฉันต้องการค้นหาองค์ประกอบทั้งหมดที่มีค่าคุณลักษณะพิเศษ
นี่คือ div ที่ฉันต้องหา (ฉันมีหลายตัว .. )
<div imageId='imageN'>...
ฉันต้องวนลูปผ่าน div ที่มี imageId='imageN'
ฉันต้องการค้นหาองค์ประกอบทั้งหมดที่มีค่าคุณลักษณะพิเศษ
นี่คือ div ที่ฉันต้องหา (ฉันมีหลายตัว .. )
<div imageId='imageN'>...
ฉันต้องวนลูปผ่าน div ที่มี imageId='imageN'
class="image imageN"หากช่วยได้
คำตอบ:
$('div[imageId="imageN"]').each(function() {
// `this` is the div
});
ในการตรวจสอบการมีอยู่ของแอตทริบิวต์ไม่ว่าจะเป็นค่าใดคุณสามารถใช้ ths selector แทน: $('div[imageId]')
แม้ว่าจะไม่ตอบคำถามได้อย่างแม่นยำ แต่ฉันก็มาที่นี่เมื่อค้นหาวิธีรับคอลเล็กชันองค์ประกอบ (ชื่อแท็กที่อาจแตกต่างกัน) ที่มีชื่อแอตทริบิวต์ที่กำหนด (โดยไม่กรองตามค่าแอตทริบิวต์) ฉันพบว่าสิ่งต่อไปนี้ใช้ได้ผลดีสำหรับฉัน:
$("*[attr-name]")
หวังว่าจะช่วยให้ใครบางคนที่เข้ามาในหน้านี้กำลังมองหาสิ่งเดียวกับที่ฉันเป็น :)
อัปเดต: ดูเหมือนว่าไม่จำเป็นต้องใช้เครื่องหมายดอกจันเช่นจากการทดสอบขั้นพื้นฐานบางอย่างสิ่งต่อไปนี้ดูเหมือนจะเทียบเท่ากับข้างต้น (ขอบคุณ Matt ที่ชี้ให้เห็น):
$("[attr-name]")
$("[attr-name]")หรือไม่? (เช่นไม่*)
$("[data-toggle='modal']")
ไม่เรียกว่าแท็ก สิ่งที่คุณกำลังมองหาเรียกว่าแอตทริบิวต์ html
$('div[imageId="imageN"]').each(function(i,el){
$(el).html('changes');
//do what ever you wish to this object :)
});
คุณสามารถใช้ค่าบางส่วนของแอตทริบิวต์เพื่อตรวจหาองค์ประกอบ DOM โดยใช้เครื่องหมาย (^) ตัวอย่างเช่นคุณมี div ดังนี้:
<div id="abc_1"></div>
<div id="abc_2"></div>
<div id="xyz_3"></div>
<div id="xyz_4"></div>...
คุณสามารถใช้รหัส:
var abc = $('div[id^=abc]')
สิ่งนี้จะส่งคืนอาร์เรย์ DOM ของ div ซึ่งมี id ขึ้นต้นด้วยabc:
<div id="abc_1"></div>
<div id="abc_2"></div>
นี่คือการสาธิต: http://jsfiddle.net/mCuWS/
ใช้การต่อสายอักขระ ลองสิ่งนี้:
$('div[imageId="'+imageN +'"]').each(function() {
$(this);
});
class="imageN"เพื่อประโยชน์ของ HTML ที่ถูกต้อง ไม่ว่าอย่างนั้นหรือdata-imageId="imageN"เพื่อประโยชน์ของ HTML5 ที่ถูกต้อง ในอดีตคุณจะสามารถใช้ตัวเลือกคลาสได้