我正在使用Javascript中的正则表达式(请参阅here),我偶然发现尝试匹配<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>
元素相关联的类。
有什么想法吗?
干杯,我。
答案 0 :(得分:0)
因此,您似乎正在使用正则表达式来验证某些文字内容,但您的问题是关于定位没有课程的<li>
元素。
您可以使用CSS样式选择器来进行DOM选择。我不确定你能选择什么,所以我将选择器从具有ID的外部<div>
开始。
$(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。