2013-10-22 75 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">