如果id中的最后一个数字小于i,则显示元素

时间:2013-04-28 14:25:28

标签: javascript jquery

我有一个名为id =“tag1”,id =“tag2”等的span元素,我只想.show()其id超过eg的最后一个数字的跨度。 19.
这些元素属于class="notVis",首次加载页面时为$(".notVis").hide();

我很擅长这个并且自学,这就是为什么以下尝试的代码会产生很多笑声,我相信。谢谢你的帮助!

var iMax = 19;
var i = 3;
var field = "tag" + i;
while(i < iMax){
   $("#field").show(); i = i + 1; field = "tag" + i;
}

3 个答案:

答案 0 :(得分:2)

您需要替换选择器中“field”的值:

$("#" + field).show();

JavaScript没有任何内置机制可以将动态值插入到字符串中,尽管其他语言也是如此。

答案 1 :(得分:0)

尝试

var iMax = 19;
var i = 3;
var field;
while(i < iMax){
   field = "tag" + i++;
   $("#" + field).show(); 
}

答案 2 :(得分:0)

虽然你已经接受了一个答案,但我会注意到你似乎比这更复杂,所以我建议采用以下方法:

var iMax = 19;
$('span[id^="field"]').hide().filter(function(i){
    return i < iMax;
}).show();

JS Fiddle demo

参考文献: