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

时间:2014-12-23 11:10:59

标签: javascript jquery

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

我做了一个测试来收回属性的值,但它没有工作,我也没有看到问题。

HTML:

<div id="t">Test</div>
<div data-test="One">Value One</div>
<div data-test="Two">Value Two</div>

JS:

$("[data-test]").each(function(){
    $("#t").append(this.attr("data-test"));
});

JsFiddle链接:http://jsfiddle.net/fbue5dpc/

谢谢!

4 个答案:

答案 0 :(得分:4)

this块中的

each指的是没有attr方法的DOM元素。您应该使用$(this)将其转换为jQuery对象。您还可以使用data方法检索值并缓存#t元素以减少正在进行的DOM检索次数来进一步改进:

var $t = $('#t')
$("[data-test]").each(function(){
    $t.append($(this).data('test'));
});

Updated fiddle

答案 1 :(得分:2)

var elemnt = $("[data-test]"),frag = "";

elemnt.each(function () {
    frag += $(this).attr("data-test");
});
$("#t").append(frag);

<强> Working DEMO

答案 2 :(得分:1)

尝试,

$(this).attr("data-test")

说明:在foreach循环内部,您将获得dom元素,因为您正在迭代dom元素列表。所以你不能直接从dom elemet调用jquery方法来执行此操作,你必须将它转换为jquery对象来执行此操作只需使用$(this)

答案 3 :(得分:0)

$("div[id!='t']").each(function(){
    $("#t").append($(this).data('data-test'));
}