jQuery过滤器选择器,这是对的吗?

时间:2010-06-03 09:56:28

标签: javascript jquery

它似乎工作正常,但我不知道这是否可以加入。

我想选择任何包含edit-text-NUM或edit-html-NUM类的HTML标记,并更改其颜色。这是我正在使用的......

jQuery(document).ready(function(){
    jQuery('*')
    .filter(function() {
        return this.className.match(/edit-(text|html)-\d/);
    })
    .css({
        'color': '#ff0000'
    });
});

看起来没问题,正则表达式好吗?

*编辑:这也有效吗?我知道如果它是一个大页面,使用jQuery('*')可能会有点困难。它只需从<body>开始工作,所以可能会改变它吗?

2 个答案:

答案 0 :(得分:0)

您可以使用:

$("[class^='edit-text-'], [class^='edit-html-']")

请注意,这并不完全相同。首先,如果您有多个类,它将无法工作。

如果您对性能持谨慎态度,那么更好的解决方案是在所有元素中添加另一个类:

<em class="edit-text-44 edit-text">

然后,你可以简单地使用:

$(".edit-text, .edit-html")

答案 1 :(得分:0)

jQuery(document).ready(function(){ 
jQuery('body *') 
.filter(function() { 
    return this.className.match(/edit-(text|html)-\d/); 
}) 
.css({ 
    'color': '#ff0000' 
}); 

});

应将其限制在文档正文