jquery每次匹配都不起作用

发布于 2024-12-11 12:18:59 字数 780 浏览 0 评论 0原文

无论如何,我想做一个判断,如果 div 的 id 匹配某些内容,则为其添加类。我的代码在这里,但每次匹配都不起作用。请帮忙,谢谢。

<script>
$(document).ready(function(){
    var num = '3';
    $('.ddd').each(function(){
        if($(this).attr('id').match(/^'id'+num$/)){
            $(this).addClass('eee');
        }
    });
});
</script>
<style>
.ddd{float:left;display:block;background:#9FF;width:50px;height:50px;margin:10px;}
.eee{background:#F36!important;}
</style>
<div class="ddd" id="id1"></div>
<div class="ddd" id="id2"></div>
<div class="ddd" id="id3"></div>
<div class="ddd" id="id4"></div>
<div class="ddd" id="id5"></div>
<div class="ddd" id="id6"></div>
<div class="ddd" id="id7"></div>

In anyway, I want make a judge, if div's id match something, then add class to it. My code here, but each match not work. pls help, thx.

<script>
$(document).ready(function(){
    var num = '3';
    $('.ddd').each(function(){
        if($(this).attr('id').match(/^'id'+num$/)){
            $(this).addClass('eee');
        }
    });
});
</script>
<style>
.ddd{float:left;display:block;background:#9FF;width:50px;height:50px;margin:10px;}
.eee{background:#F36!important;}
</style>
<div class="ddd" id="id1"></div>
<div class="ddd" id="id2"></div>
<div class="ddd" id="id3"></div>
<div class="ddd" id="id4"></div>
<div class="ddd" id="id5"></div>
<div class="ddd" id="id6"></div>
<div class="ddd" id="id7"></div>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

聊慰 2024-12-18 12:18:59

更新:

var num = '3';
$('#id' + num).addClass('eee');

您可以简单地使用 以选择器开头 ^=< /a> 并像这样应用类:

$('div.ddd[id^="id"]').addClass('eee');

这会将 eee 类应用于具有以文本 id 开头的 id 属性的所有元素:)

Update:

var num = '3';
$('#id' + num).addClass('eee');

You can simply use starts with selector ^= and apply class like this:

$('div.ddd[id^="id"]').addClass('eee');

This will apply eee class to all elements that have an id attribute starting with text id :)

浅笑依然 2024-12-18 12:18:59

您可能应该听所有这些人说您应该使用实际的 id (#id) 选择器或属性 ([attribute=value]) 选择器,但要回答你的问题,我会指出你做错了什么。
创建需要在其中封装变量的“动态”正则表达式时,您应该使用 new RegExp 构造函数而不是内联语法 /rule/。此外,如果您只想测试某些东西是否符合正则表达式,您可能应该使用正则表达式的 test 方法。 :

var num = '3';
var regex = new RegExp('^id' + num + '
);
$('.ddd').each(function(){
    if(regex.test($(this).attr('id'))){
        $(this).addClass('eee');
    }
});

You should probably listen to all these guys saying that you should use the actual id (#id) selector or the attribute ([attribute=value]) selector, but to answer your question, I'm going to point out what you did wrong.
When creating "dynamic" regular expressions that need to encapsulate variables in them you should use the new RegExp constructor instead of the inline syntax /rule/. Moreover, if you just want to test if something mathces a regex, you should probably use the regex's test method. :

var num = '3';
var regex = new RegExp('^id' + num + '
);
$('.ddd').each(function(){
    if(regex.test($(this).attr('id'))){
        $(this).addClass('eee');
    }
});
合约呢 2024-12-18 12:18:59
$(document).ready(function(){
    var num = '3';
    $('.ddd').each(function(){
        if($(this).attr('id').match(/^id[0-9]+$/)){
            $(this).addClass('eee');
        }
    });
});
$(document).ready(function(){
    var num = '3';
    $('.ddd').each(function(){
        if($(this).attr('id').match(/^id[0-9]+$/)){
            $(this).addClass('eee');
        }
    });
});
慕巷 2024-12-18 12:18:59
<script>
$(document).ready(function(){
    var num = '3';
    $(".ddd[id='id'"+num+"']").addClass('eee');
    });
<script>
$(document).ready(function(){
    var num = '3';
    $(".ddd[id='id'"+num+"']").addClass('eee');
    });
氛圍 2024-12-18 12:18:59
$(document).ready(function(){
    var num = '3';
    $('.ddd[id^="id'+num+'"]').addClass('eee');
});
$(document).ready(function(){
    var num = '3';
    $('.ddd[id^="id'+num+'"]').addClass('eee');
});
一生独一 2024-12-18 12:18:59

保持简单:)

$(document).ready(function(){
    var num = '3';
    $('.ddd#id' + num).addClass('eee');
});

keep it simple :)

$(document).ready(function(){
    var num = '3';
    $('.ddd#id' + num).addClass('eee');
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文