如何在jquery中动态传递id

时间:2010-12-15 10:34:01

标签: jquery

我有div id数组我需要关闭所有div。我曾使用过以下代码。不行。怎么做。

$.each([id_1, id_2], function(index, value) { 
  //alert(index + ': ' + value); 

$("#"+value).css({'display' : 'none'});

});

我需要动态传递id $("#"+id_value)

3 个答案:

答案 0 :(得分:3)

您可以使用Array join方法,如下所示:

var idsInJquerySyntax = '#' + [id_1, id_2, id_3].join(', #');

$(idsInJquerySyntax).css({
 display: 'none'
});

您可以在此处查看有效的演示:http://www.jsfiddle.net/qHVg7/

答案 1 :(得分:1)

尝试将它们作为字符串传递?即:

$.each(['id_1', 'id_2'], ...

您也可以像其他人建议的那样以编码方式建立Multiple Selector,但如果您不喜欢拥有10,000个字符长的选择器,并且您的ID已遵循命名约定(例如' myid_1','myid_2','myid_10'等等。然后我会建议使用startsWith selector,就像这样:

$("[id^=myid]").hide(); // hide all elements with ID starting with 'myid'

答案 2 :(得分:0)

您可以通过multiple selector将其转换为.join(),如下所示:

$('#'+[id_1, id_2].join(',#')).hide();

这基本上就是这样做:

$('#someId1,#someId2').css({'display' : 'none'});

.hide()设置display: none,但.show()会将其恢复为之前的值。