正则表达式与.find(),没有结果

时间:2012-12-19 11:50:00

标签: javascript jquery regex

我正在尝试更改网页上的idname属性。我正在使用的代码是:

var img = new RegExp( 'id*="launch_pad_image_slide_\d"', g ) ;
$('.slider-data').each(function(){
    $(this).find(img).attr( 'id', 'random stuff' );
});             

假设.find函数应该选择整个id内部:

id="launch_pad_image_slide_2"

......但它不起作用。

这5个小时,烧坏了。建议?基本上每次删除字段时,jQuery都必须循环遍历它们并正确编号id / name属性以避免双倍。

2 个答案:

答案 0 :(得分:10)

jQuery选择器不支持正则表达式语法。但是,您可以使用Attribute Starts With Selector

$(this).find("[id^='launch_pad_image_slide_']").prop("id", "random stuff");

另一种方法是filter元素:

$(this).find("[id]").filter(function() {
    return /^launch_pad_image_slide_\d$/.test(this.id);
}).prop("id", "random stuff");

答案 1 :(得分:1)

试试这个:

    $('img').each(function(){
           if ($(this).attr('id').indexOf("launch_pad_image_slide_") >= 0)
               $(this).attr('id',Math.random());
    });