2012-06-22 23 views
0

我想根據用戶所做的下拉菜單選項來隱藏/顯示錶單中的一類元素。見:http://jsfiddle.net/3FmHK/2/使用js修改類中的所有元素

我是js的新手,有兩個問題,所以也許他們很明顯,忍受着我。

1)我通過div id修改,所以只有第一個元素髮生了變化(而不是在這個小提琴出於某種原因,但它在項目中)。不過,我希望班級的所有元素都可以修改,但我無法完成這項工作。那麼,如何修改整個類的style =「display」而不是單個元素呢?

2)刪除不適用於新添加的元素,當表單與項目中的值一起返回時,它們是可移動的。就我所知,使用螢火蟲,代碼看起來與GET返回生成的元素和用戶添加的元素相同。爲什麼刪除功能不適用於新添加的元素?

+0

你想使用jQuery嗎?在你的小提琴中,你幾乎沒有jQuery,直到最後。只是想在我看到我能做什麼之前確定你想要的方法。 –

+0

jQuery被用在整個項目的許多其他地方,但是新的,導致小提琴的google方法恰好是javascript。 (並不是特別寫得好,我可能會添加) –

+0

一個側面說明,如果你可以複製和修改我發佈的小提琴,這將是巨大的,因爲我不會理解js或jQuery的所有功能,以便能夠正確執行。 –

回答

2

如果可以的話,我建議使用jQuery這一點。您可以使用.on()功能將操作綁定到新創建的元素上,然後使用類選擇器將.hide()所有類繼承到.show()當前通過ID選擇的元素。

這將是這個樣子:

jQuery(document).ready(function() { 
    jQuery(document).on('click', '.classname', function() { 
     jQuery('.' + jQuery(this).attr('class')).hide(); 
     jQuery(this).show(); 
     // Or you can use the following to show a specific ID element. 
     //jQuery('#idtoshow').show(); 
    )}; 
}); 

這將隱藏與類名的所有元素。您需要在腳本之前包含jQuery庫。儘管我只在這裏使用show和hide,但只要您將動作與.on綁定,而不僅僅是.click,就可以使用.remove()。您需要.on才能綁定到新創建的元素。

http://api.jquery.com/on/

希望這會有所幫助。

0

嘗試:

$(this).parent('div').first().remove(); 
+0

在項目或小提琴中不適合我。 –

+0

不錯,甚至$(this).remove();不工作在小提琴上,嘗試在瀏覽器中。 – Maresh