如果包含某些模式,如何检查ID名称?

时间:2010-11-08 11:32:42

标签: jquery

我正在使用jquery,我正在循环:

$("span").each(function (index) {
    var idname = $(this).attr('id');
    $("#" + idname).click(function () {
        window.location.href = "http://" + $(this).attr('id') + "lin.gw";
    });

}); //end for click attachment to button

我想循环id包含*raid*的元素。它的语法是什么?

4 个答案:

答案 0 :(得分:5)

使用attribute-contains selector

$("span[id*=raid]").click(function(){
    window.location.href = "http://"+ this.id +"lin.gw"; 
});

答案 1 :(得分:1)

最好的方法是使用filter删除您不想要的元素:

$("span").filter(function() {
    if (this.id.toLowerCase().indexOf('raid') !== -1) {
        return true;
    } else {
        return false;
    }
}).click(function(){
    window.location.href="http://"+this.id+"lin.gw"; 
});

这使用this.id(远远高于$(this).attr('id'))并使用单click次调用,而不是使用each,这更加清晰,性能略有提升

答案 2 :(得分:0)

通过'喜欢' raid “'我认为你的意思是它包含”raid“。最简单的方法是测试正则表达式:/raid/.test(idname)。如果它像“raid”那样返回true,如果不是,则返回false

答案 3 :(得分:0)

你可以使用正则表达式。以下是正则表达式电子邮件匹配的示例。您可以编写自己的正则表达式并检查“id name”是否包含“raid”。

function IsValidEmail(email) { var filter = /^([\w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([\w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$/; return filter.test(email); }