嵌套CSS类的Javascript正则表达式

时间:2012-09-25 15:50:52

标签: javascript css regex

在我的问题here之后,我一直在尝试在Javascript中编写类似的代码,用于检测嵌套CSS类中文本中出现的一系列Unicode字符。到目前为止,我能够使它在DIV类上工作,例如:

$(document).ready(function() {
    $('h2.ClassName').each(function(index, DOMElement){
        if(/[\uE000-\uF8FF]+/.test($(DOMElement).text())) {
            $(this).removeClass('ClassName').addClass('CSS-ClassName');
        }
    }) 
});

但是,类似的Javascript不适用于以下类:

<ul>
    <h4 class="ClassName">Text</h4>
    <li class="ClassName">Text</li>
<ul>

有什么想法吗?

非常感谢,

此致

1 个答案:

答案 0 :(得分:1)

如果你想让jQuery使用相同的ClassName查找其他元素,那么你需要将它们添加到你的选择器中,如下所示:

$(document).ready(function() {
    $('h2.ClassName, h4.ClassName, li.ClassName').each(function(index, DOMElement){
        if(/[\uE000-\uF8FF]+/.test($(DOMElement).text())) {
            $(this).removeClass('ClassName').addClass('CSS-ClassName');
        }
    }) 
});

如果您希望获得真正的通用,并使用ClassName更改所有元素,那么您可以将选择器更改为:

/* ... */
$('.ClassName').each(); /* ... you get the idea ... */
/* ... */

希望有所帮助。