2010-01-15 70 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。 –