2010-01-15 119 views
4

嘿,大家好,我試圖隱藏/顯示不同的html元素(div等),基於是否選中複選框或特定值是從下拉框中選擇的。我想知道是否有人能幫助我。 html元素是沿着這個(下面)的行定義的,我不確定如何用括號括起來引用它。我使用的頁面已啓用jquery,並且如果可能的話我想使用它。謝謝!通過javascript引用HTML元素的名稱(帶有方括號)通過javascript

<input type="checkbox" name="addons[2]" /> 

此外 - 我不能修改複選框的代碼。

回答

2

感謝您的幫助,這裏是我以前使用[]

$("input[name='customfield[4]']").click(

    function() 
    { 
     if ($("input[name='customfield[4]']").is(":checked")) 
     { 
      $("#addons").hide(); 
     } 
     else 
     { 
      $("#addons").show(); 
     } 
    } 
); 
+0

你可以在你的JS代碼中使用$(this).is(「:checked」)。此外,還有一種方法可以純粹在CSS中使用:checked僞元素 - #addons {display:none}輸入[name = customefield \ [4 \]]:checked + #addons {display:block}。這假定#addons div在這個輸入元素旁邊。否則,您可以使用〜代替+。 – Chandranshu

+0

我在http://jsfiddle.net/4LzP9/上添加了一個jsfiddle,供大家參考。 – Chandranshu

5

jQuery來檢查是否元件被檢查:

$("input[name='addons[2]']").attr("checked") 

jQuery來遍歷這樣的元件被檢查:

$("input[name^='addons']:checked").each(function() { 
    // ... 
}); 
1

下面是一個直列非jQuery的解決方案,繞過需要完全通過使用javascript this關鍵字來引用方括號。假設你想顯示/隱藏<div>id="mydiv"

<input type="checkbox" name="addons[2]" onclick="document.getElementById('mydiv').style.display = (this.checked ? 'block' : 'none');" /> 
+0

由於最終代碼,這是一個很好的例子 - 但不幸的是我不能修改複選框的代碼,它是自動生成的。我雖然給了你一個+1。 –