Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对于具有特定属性的每个元素-Javascript_Javascript_Jquery - Fatal编程技术网

对于具有特定属性的每个元素-Javascript

对于具有特定属性的每个元素-Javascript,javascript,jquery,Javascript,Jquery,我尝试查找具有特定属性的所有元素。对于每个元素,我想根据属性的值做一些事情 我做了一个测试,以收回属性的值,但它不起作用,我没有看到问题 HTML: JSIDLE链接: 谢谢大家! 试试看 $(this).attr("data-test") 说明:在foreach循环中,您将获得dom元素,因为您正在迭代dom元素的列表。因此,您不能直接从dom elemet调用jquery方法。要做到这一点,您必须将其转换为jquery对象,只需在中使用$(this)this,每个块都引用没有attr方法的

我尝试查找具有特定属性的所有元素。对于每个元素,我想根据属性的值做一些事情

我做了一个测试,以收回属性的值,但它不起作用,我没有看到问题

HTML:

JSIDLE链接:

谢谢大家!

试试看

$(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'));
}