在循环中添加“ #items”

时间:2018-08-27 02:53:18

标签: javascript

我正在尝试将Java脚本中的以下代码添加到循环中。

 $('#items').find('input').prop('disabled', this.checked);

我想将“ items”变量更改为“#items1”,“#items2”,“#items3”等循环。

此代码已在我的代码的这一部分工作

var checkList = document.getElementById('list1');

添加到循环中以获取“ list1”,“ list2”,“ list3”

var checkList = document.getElementById('list'+list[i].value); 

但不适用于先前代码中的“项目”,可能是因为前面有一个#。请帮我。

3 个答案:

答案 0 :(得分:1)

尝试一下:

var checkList = document.getElementById('list' + (i + 1)); 

或者为了获得最佳使用效果,请尝试使用类而不是id,并为所有项目提供类名称,例如:itemClass,然后可以获得所有项目:

var checkLists = document.getElementsByClassName('itemClass'); 

答案 1 :(得分:0)

问题出在您使用以下代码后:

$('#items').find('input')

您不仅获得了一个DOM元素。因此,您需要在找到所有内容后使用jQuery.each “输入”元素,然后执行您想要的操作。

答案 2 :(得分:0)

谢谢你们,我自己解决了这个问题。我首先将变量值添加到另一个变量中,然后将其放入函数中。

var itemId = list[i].value;

我将其放在函数中。

$(function() {
   $(document).on('change', '#IsAssociation', function() {                        
   $('#items'+itemId).find('input').prop('disabled', !this.checked);
   $('#items'+itemId).find('li').toggleClass('disabled', !this.checked);
});