2013-10-22 46 views
0

我想用jQuery/javascript从命名输入元素中删除一个类,如果复选框被勾选。在javascript中使用变量来动态引用html元素

我有几个复选框,每个复选框都带有隐藏的(页面加载)文本输入字段。

复选框和文本输入字段分别被命名为“question_X”和“question_X_description”。 (其中X是数字0到100,说)

因此,我试图定义一个变量在我的代码中定义为“此元素的名称”+“_ description”,然后用它来定义合适的元素从中删除类。

这里是我试过:在任何复选框被选中时

$('input:checkbox').change(function(){ 

var x = $(this).attr('name').'_description'; 

if($(this).is(":checked")) { 
    $('input[name="x"]').removeClass("hidden"); 
} else { 
    $('input[name="x"]').addClass("hidden"); 
} 
}); 

然而,没有任何反应。我是否正确引用了我的变量?

回答

3

使用你的控制台,它会有错误信息。

第一个问题

var x = $(this).attr('name').'_description'; 
          ^^^ 

这不是你如何建立在JavaScript字符串。 JavaScript不使用.来加入字符串。它采用+

var x = $(this).attr('name') + '_description'; 

第二期

$('input[name="x"]'). 

你是不是找你建的字符串,你正在寻找一个名称的元素x

有待

$('input[name="' + x + '"]'). 
+0

谢谢那种海盗的男人:我是JavaScript的不好:)感谢您教我如何正确引用我的变量和连接!一旦时限结束,我会接受。 – Gideon

0
$('input[name="x"]').removeClass("hidden"); 

将寻找:

<input name="x" /> 

尝试

$(name="'+x+'").removeClass("hidden"); 
0

使用document.getElementById('element_name')

HTML元素的例子: <input type="text" id="element_name">