0

Javascript で正規表現を使用しています (こちら<li>を参照) 。要素を一致させようとすると、いくつかの困難に遭遇しました。私のCssは次のようになります:

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

テキスト タイトルが書き込まれる Unicode 範囲を検出し、範囲に応じてカスタム フォントの PUA (私用領域) を使用する Javascript を作成しました。これは、次のようにクラスでうまく機能します。

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

ただし、UL 継承要素に対しては機能させられません。それを困難にしているのは、<li>要素に関連付けられたクラスがないという事実です。

何か案が?

乾杯、I.

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 に答える