将一个 id 数组输入到 jquery 选择器中
Posted
技术标签:
【中文标题】将一个 id 数组输入到 jquery 选择器中【英文标题】:input an array of id's into a jquery selector 【发布时间】:2013-03-22 04:10:39 【问题描述】:所以我试图将一个数组输入到一个 jquery 选择器中,但由于某种原因我根本无法让它工作。我尝试了以下几种方法 第一个:
var id = ["#id1", "#id2", "#id3"];
$(id[0]).css('color', '#000');
我的另一个尝试:
var id = [];
for(var x = 0;x < 3; x++)
id[x] = x;
$("#id"+id[0]).css('color', '#000');
所以我想知道解决这个问题的方法是什么?
我使用它的例子:
for(var x = 0;x < 28; x++)
function randomizerlet()
randlet[x] = Math.floor(Math.random()*156);
timesletrun[x] += 1;
if (masterlet[randlet[x]] == letter[x])
$('#flipL4_1').css('background-position', masterlet[randlet[x]]);
clearInterval(intervallet[x]);
else
if(timesletrun[x] == 300)
masterlet[randlet[x]] = letter[x];
$('#flipL4_1').css('background-position', masterlet[randlet[x]]);
clearInterval(intervallet[x]);
else
$('#flipL4_1').css('background-position', masterlet[randlet[x]]);
var intervallet[x] = setInterval(function()
randomizerlet();, 10);
【问题讨论】:
如果您尝试对列表中的 id 执行不同的操作,那么您将无法提高效率。如果您将列表颜色中的所有内容设置为黑色,那么 Matt 的回答以及他的“使用课程”建议是理想的。 你的第一次尝试效果很好,看:jsfiddle.net/MMSrDfunction randomizerlet[x]()
会运行吗?
不,你的权利,这不起作用,对不起。
【参考方案1】:
将数组元素连接成一个字符串:
var id = ["#id1", "#id2", "#id3"];
$(id.join(',')).css('color', '#000');
或者使用循环:
for (var i=0; i<id.length; i++)
$(id[i]).css(...);
或者另一种循环:
$.each(id, function (i, elt)
$(elt).css(...);
);
或者更奇特的循环:
var $elements = $.map(id, function (elt, i)
return $(elt);
);
$elements.css(...);
综上所述,使用通用类而不是 ID 可能会更好。任何时候你认为你需要类似数字的索引,这强烈暗示你最好使用类来代替。
【讨论】:
我需要将它们分开,而不是全部相同。 我不明白。请详细说明。 $("#id1").css('color', '#000');在函数内部,而 $("#id2").css('color', '#000');将在不同的函数中,因为它们正在为 .css('color', 'different variable') 接收不同的输入。 您的解释还不够,我无法为您考虑。我不是读心者,所以你自己来做这个。 编辑帖子以便更好地了解我的需求,id 也需要循环遍历,每个 id 都不相同。以上是关于将一个 id 数组输入到 jquery 选择器中的主要内容,如果未能解决你的问题,请参考以下文章
PHP + jQuery:将日期选择器应用于具有特定模式的输入