2012-03-24 123 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