0

我正在使用 Javascript 中的正则表达式(请参阅此处),并且在尝试匹配<li>元素时偶然发现了一些困难。我的 CSS 看起来像这样:

<div id="ResultTabContent" class="TabContent DetailsTabContent">
    <div class="DetailsTabContent">
    <ul>
    <li> <strong>Title:</strong>
    Text Title
    </li>
    </ul>

我编写了一些 Javascript 来检测写入文本标题的 Unicode 范围,并根据范围使用自定义字体中的 PUA(私人使用区域)。这适用于类,如下所示:

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

但是我不能让它对 UL 继承的元素起作用。使这变得困难的是没有与<li>元素关联的类这一事实。

任何想法?

干杯,我。

4

1 回答 1

0

因此,您似乎正在使用正则表达式来验证某些文本内容,但您的问题是关于定位<li>没有类的元素。

您可以使用 CSS 样式选择器进行 DOM 选择。我不确定您能够选择什么,所以我将选择器<div>基于具有 ID 的外部。

$(document).ready(function() {
    var li_els = $('#ResultTabContent > div.DetailsTabContent > ul > li');

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

这使用>子选择器从外部 DIV 向下钻取到嵌套的 LI 元素。

然后.each()就像在您的原始代码中一样用于迭代 LI。

于 2012-09-28T14:21:56.113 回答