要将标签放入数组中,您可以轻松地使用jQuery(虽然我不熟悉zepto):
var elementsArray = [];
$('div').children().each(
function(i){
elementsArray.push(this.tagName.toLowerCase());
});
JS Fiddle demo.
要使用它们,您可以尝试:
for(i=0;i<elementsArray.length;i++){
$('div').find(elementsArray[i]).css('color','red');
}
JS Fiddle demo.
虽然这只是简单地使用每个元素的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 Fiddle demo.
叹息,我是个白痴。其最终迭代如下,这在一定程度上降低了复杂性,并允许根据每个元素在数组中的位置对其进行适当的迭代:
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 Fiddle demo.
话虽如此,但如果您想“定位其中的所有元素”,为什么不简单地通过以下方式定位这些元素:
$('div').children();
它将选择和定位div 元素的每个直接子元素,而无需先将它们保存在用户创建的数组变量中,也不必将它们保存在用户创建的数组变量中。