要将标签放入数组中,您可以使用 jQuery 轻松使用(尽管我不熟悉zepto):
var elementsArray = [];
$('div').children().each(
function(i){
elementsArray.push(this.tagName.toLowerCase());
});
JS 小提琴演示。
要使用它们,您可以尝试:
for(i=0;i<elementsArray.length;i++){
$('div').find(elementsArray[i]).css('color','red');
}
JS 小提琴演示。
虽然这只是使用tagName
每个a
元素的$('div').find('a')
通过使用更复杂的选择器和行为,上述警告似乎被打了折扣,并允许每个元素一次迭代一个,尽管我不禁觉得它比它需要的复杂一点:
var elementsArray = [];
$('div').children().each(
function(i){
elementsArray.push(this.tagName.toLowerCase());
});
for(i=0;i<elementsArray.length;i++){
$('div')
.find(elementsArray[i])
.not('.edited')
.eq(0).css('color','red')
.addClass('edited');
}
JS 小提琴演示。
叹息,我是个白痴。其最终迭代如下,这在一定程度上降低了复杂性,并允许根据每个元素在数组中的位置对其进行适当的迭代:
var elementsArray = [];
$('div').children().each(
function(i){
elementsArray.push(this.tagName.toLowerCase());
});
for(i=0;i<elementsArray.length;i++){
$('div')
.children()
.eq(i)
.css('color','red');
}
JS 小提琴演示。
尽管如此,如果你想“定位所有元素”,为什么不简单地定位这些元素:
$('div').children();
它将选择和定位元素的每个直接子div
元素,而无需先将它们保存在用户创建的数组变量中,也不必将它们保存在用户创建的数组变量中。