我有一个div元素列表:
var list = $('.divelement').get();
我想使用jQuery在每个div元素中查找特定元素(其id包含“hdnPK”)。类似的东西:
var elem1 = list[0].$("[id*='hdnPK']").get();
var elem2 = list[1].$("[id*='hdnPK']").get();
但你不能像我上面那样写它。你如何使用jQuery迭代常规数组?
答案 0 :(得分:6)
如果要查找的元素是嵌套的,请执行以下操作:
$(list).find("[id*='hdnPK']")
如果它是顶级的,请执行以下操作:
$(list).filter("[id*='hdnPK']")
只是想确保您知道.get()
从jQuery对象中提取DOM元素的数组。如果您对此没有任何特殊需求,那么您可以这样做:
var list = $('.divelement');
list.find("[id*='hdnPK']")
// or
list.filter("[id*='hdnPK']")
或者,如果您不需要中间缓存集,请执行以下操作:
$('.divelement [id*="hdnPK"]') // for nested
$('.divelement[id*="hdnPK"]') // for top level
答案 1 :(得分:2)
$(".divelement").each(function() {
var $specific_element = $(this).find("[id*='hdnPK']");
});
答案 2 :(得分:0)
你可以在jquery中迭代一个数组,就像在javascript中一样:
var myarray = new Array(1,2,3,4);
for (key in myArray){
alert key;
}
How many ways can you iterate through an array in javascript?
答案 3 :(得分:0)
patrick dw答案的变体,您可以使用.eq()
或.get()
方法获取特定元素:
var list = $('.divelement');
var secondElement = list.find("[id*='hdnPK']").eq(1); // return a jQuery-wrapped object
var thirdElement = list.find("[id*='hdnPK']").get(2); // returna a DOM element
此外,jQuery提供了一个方便的.each()
方法:
var list = $('.divelement');
list.find("[id*='hdnPK']").each(function() {
// this inside this function refers to the currently iterated element
console.debug(this); // write out the DOM element to the console
});