2012-03-24 169 views
0

我正在寻找一种方式来获得该类克隆的元素,如果可能的话,这里是我的脚本:获取类克隆元素的jQuery

var numberOfDoc = $("input[type=checkbox]").each(function (index) { 
    $(this).addClass("doc" + index); 
}) 

$("input").change(function() { 
    if(this.checked) { 
     var checked = $(this).parent().find("span"); 
     $("span.noneAttached").fadeOut('slow', function() { 
      checked.clone().appendTo(".attachedDocuments").after("<br />").text(); 
     }); 
    } 
    else if ($("input:checked").length == 0) { 

     $("span.noneAttached").fadeIn("slow"); 
    } 
}); 

正如你所看到的,我给每个复选框它是基于它的索引号的自己的类名。当单击一个复选框时,它会查找它的父级,然后跨度,克隆它,并将跨度的文本附加到另一个div。

在跨度被克隆之后,我需要能够找到复选框已经给出的类名,并将其添加到正在被克隆和追加的跨度,以便跟踪每个跨度实际来自哪里。

这里有什么想法吗?有一个更好的方法吗?

+0

期望的结果/用户体验是什么? – max 2012-03-24 04:16:17

+0

基本上,有人会检查复选框,并根据点击的复选框将文件添加到最终会通过电子邮件发送给其他人的表单中。我需要跟踪从哪个复选框添加哪些跨度,以便在稍后取消选中时删除它们。 – Sethen 2012-03-24 04:17:30

回答

1

假设this引用该复选框,您可以使用$(this).attr('class')来获取复选框的类名称。

另外,您可以使用$("input:checked")获取页面上所有已检查输入的数组。

+0

啊,当然。我认为'.prop()'可能更适合这个。 – Sethen 2012-03-24 04:22:53

+0

如果你想要像tagName或nodeType这样的东西,我可以看到'prop()'更合适,但是你写了你想要的class属性,'attr()'在这方面更加明确。 – 2012-03-24 04:25:46

+0

我就是那个人...... – Sethen 2012-03-24 04:27:05