使用jQuery按数据属性选择克隆元素

时间:2014-08-29 06:38:38

标签: javascript jquery

所以我克隆了一个元素并为其添加了一些data。现在我需要通过data attribute选择克隆的元素。问题是我无法找到,选择基于data attribute的克隆元素。有什么想法吗?

这是小提琴http://jsfiddle.net/fjckls/hho6k86a/

这不起作用:

var clone = $(".clone").clone(true);
clone.html("this is clone")
clone.data("info", "this-is-clone");
$(".clone-holder").append(clone);

// nothing is selected
var cloned = clone.find("[data-info='this-is-clone']");
cloned.css("color", "red")
  

@fjckls它只是通过使用属性而不是数据来解决它   没有解释为什么你的代码不起作用。这种答案   当然不会帮助社区。 - King King

我暂时接受了 @Hendra Lim 的答案 - 我理解其解决方法 - 不使用data属性,而是创建新的自定义属性。如果有人在我的方案中使用data的“正确”解决方案,那么我会重新考虑接受的答案。暂时它起作用所以我会离开它。

1 个答案:

答案 0 :(得分:0)

试试这个:

var clone = $(".clone").clone(true);
clone.html("this is clone")
clone.attr("info", "this-is-clone");
$(".clone-holder").append(clone);

var cloned = $(".clone-holder").find("[info='this-is-clone']");
cloned.css("color", "red")

这是工作示例here

你做错了,是你试图在“.clone”元素中找到克隆元素,而你必须在“.clone-holder”元素中找到克隆元素因为你在那里附加了你的克隆元素。并将clone.data替换为clone.attr。