对于具有特定属性的每个元素-Javascript
我尝试查找具有特定属性的所有元素。对于每个元素,我想根据属性的值做一些事情 我做了一个测试,以收回属性的值,但它不起作用,我没有看到问题 HTML: JSIDLE链接: 谢谢大家! 试试看对于具有特定属性的每个元素-Javascript,javascript,jquery,Javascript,Jquery,我尝试查找具有特定属性的所有元素。对于每个元素,我想根据属性的值做一些事情 我做了一个测试,以收回属性的值,但它不起作用,我没有看到问题 HTML: JSIDLE链接: 谢谢大家! 试试看 $(this).attr("data-test") 说明:在foreach循环中,您将获得dom元素,因为您正在迭代dom元素的列表。因此,您不能直接从dom elemet调用jquery方法。要做到这一点,您必须将其转换为jquery对象,只需在中使用$(this)this,每个块都引用没有attr方法的
$(this).attr("data-test")
说明:在foreach循环中,您将获得dom元素,因为您正在迭代dom元素的列表。因此,您不能直接从dom elemet调用jquery方法。要做到这一点,您必须将其转换为jquery对象,只需在
中使用$(this)this
,每个块都引用没有attr
方法的dom元素。您应该使用$(this)
将其转换为jQuery对象。您还可以通过使用data
方法来检索值,并缓存#t
元素来减少正在进行的DOM检索的次数,从而进一步改进这一点:
var $t = $('#t')
$("[data-test]").each(function(){
$t.append($(this).data('test'));
});
试试……
答案不太好。因为你没有解释你做什么以及为什么这是必要的。谢谢,我补充了一些解释谢谢你的解释。它按预期工作。您不应该更改选择器
,或者您应该解释为什么将[数据测试]
更改为div[数据测试]
。niese你不应该给出答案,而应该评论和判断其他人的答案。让OP来做吧。对于div,我理解逻辑。然而,在我的应用程序中,数据测试属性可以在不同的元素上(h1,p,…)@Vaibs_Cool如果RoryMcCrossan
已经给出了一个完美的答案并给出了解释,我为什么还要添加一个额外的答案。所以,这不仅仅是一个人们作为个体获得帮助的地方,更理想的是一个在未来帮助其他人解决类似问题的地方。因此,每当OP的代码被更改时,解决问题就显得很重要。我很少放弃投票。但是,如果我认为答案的一部分可以改进,我总是加上一条评论。@Rorymcrossan评论别人的答案并不坏,但我觉得奇怪的是只评论别人..而且那太离谱了。。。无论如何,为你的正确答案欢呼。$(“div[id!='t'])
..?问题是关于我试图找到具有特定属性的所有元素。
。因为他只想添加数据测试
属性。因此,每个循环将只选择那些没有id='t'
cz的潜水。他在$(“t”)
innerHTML中添加属性值。但它改变了问题的含义。另外,$(this).data('data-test')
无论如何都不会工作,它应该是$(this).attr('data-test')
或$(this).data('test')
。这只是一个例子。它将集成在一个更大的文件中,具有不同的id。所以我认为这不是一个好办法。谢谢你的改进。没问题,很乐意帮忙
$(this).attr("data-test")
var $t = $('#t')
$("[data-test]").each(function(){
$t.append($(this).data('test'));
});
var elemnt = $("[data-test]"),frag = "";
elemnt.each(function () {
frag += $(this).attr("data-test");
});
$("#t").append(frag);
$("div[id!='t']").each(function(){
$("#t").append($(this).data('data-test'));
}