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

Javascript 如果元素id中的最后一个数字小于i,则显示元素,javascript,jquery,Javascript,Jquery,我的span元素名为id=“tag1”、id=“tag2”等,我只想.show()id中最后一个数字小于例如19的span元素。 这些元素属于一个class=“notVis”,即$(“.notVis”).hide()首次加载页面时 我在这方面完全是新手,我相信这就是为什么下面的代码会引起很多笑声的原因。谢谢你的帮助 var iMax = 19; var i = 3; var field = "tag" + i; while(i < iMax){ $("#field").show();

我的span元素名为id=“tag1”、id=“tag2”等,我只想
.show()
id中最后一个数字小于例如19的span元素。
这些元素属于一个
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;
}
var iMax=19;
var i=3;
var field=“tag”+i;
而(i
您需要在选择器中的“字段”值中替换:

$("#" + field).show();
JavaScript没有任何内置机制将动态值插入字符串中,尽管其他一些语言有这种机制。

试试看

var iMax = 19;
var i = 3;
var field;
while(i < iMax){
   field = "tag" + i++;
   $("#" + field).show(); 
}
var iMax=19;
var i=3;
var场;
而(i
虽然您已经接受了答案,但我要指出的是,您似乎使问题变得比需要的复杂得多,因此我建议采用以下方法:

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

参考资料:


为什么不为这些标签分配第二个类别?这样一来,
$('tagsUnder20').show()将起作用。一行,一次搜索。问题是,根据上一页的php输入,var iMax总是不同的…@DanPichelman这是真的,但如果数字(本例中为19)本身是动态的,则会变得混乱。元素总是有序的吗?您在循环中的方法似乎比需要的要昂贵得多。如果它们是有序的,并且您提供了一些标记,则可以提供更好的解决方案。