1

同じIDの要素がページにいくつかあります。ここに2つあります:

<span id="worldwide">United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy</span>

<span id="worldwide">United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy</span>

各要素には、すべての国または1つの国のみが含まれます。例のこれら2つは、両方とも多くの国にあります。jqueryで、長さが100を超えているかどうかを確認し、その真の場合はすべての国を1つの単語(WORLDWIDE)に置き換えてください。

これは私が使用するものです:

<script>
    $("#worldwide").each(function () {
        if ($("#worldwide").text().length > 100) {
            $("#worldwide").text('WORLDWIDE')
        }
    })
</script>

これは最初のdivを変更するためにのみ機能しますが、2番目のdivには影響しません。.each関数をうまく使っていないと思います。何が悪いのか教えてください

4

6 に答える 6

3

問題は、同じid属性を持つ要素があり、要素には一意idのsが必要であるということです。等しいid属性の代わりにクラスを配置します。

<span class="worldwide">...</span>

そして、このコードを使用します:

$(".worldwide").each(function() {
    if ($(this).text().length > 100) {
        $(this).text('WORLDWIDE');
    }
});

デモ:http: //jsfiddle.net/aD7HQ/

于 2012-05-21T20:49:28.227 に答える
1

IDは、一意の識別子を意味します。同様に動作させたい要素がたくさんある場合は、のclass代わりにを使用してくださいid

于 2012-05-21T20:49:44.297 に答える
1

IDのインスタンスを複数持つことはできないため、IDと呼ばれます。

代わりにクラスを使用する方がよいでしょう。

また、JQueryでは各ステートメントの最後にセミコロンを使用する必要があることに注意してください。

<span class="worldwide">United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy</span>

<span class="worldwide">United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy United Kingdom Australia United States Lithuania Russia Spain France Portugal Italy</span>


<script>

$(".worldwide").each(function() {


if ($(this).text().length > 100) { $(this).text('WORLDWIDE'); }

});
</script>
于 2012-05-21T20:50:32.670 に答える
1

同じIDを持つ複数の要素を使用しないでください。あなたの場合が厳密に必要な場合は、これを使用できます:

$('span').each(function(index,element){
    if(element.id == 'worldwide'){
        //Do Something
    }
});
于 2012-05-21T20:54:32.590 に答える
1

私はその.text()方法を使います。

$(".worldwide").text(function(i,text){
    return text.length > 100 ? 'WORLDWIDE' : text;
});

また、明らかなIDは一意である必要があります。IDを一意にすることができない場合、または代わりにクラスを使用できない場合は、非効率的な回避策を次に示します。

$("[id=worldwide]").text(...
于 2012-05-21T20:56:05.557 に答える
0

まず、IDを繰り返すことはできません。これは、Web標準に違反し、ブラウザは、参照している世界中のIDを認識できず、クラスに変更するだけで機能します。

<span class="worldwide">...</span>
<span class="worldwide">...</span>

各要素には、すべての国または1つの国のみが含まれます。例のこれら2つは、両方とも多くの国にあります。jqueryで、長さが100を超えているかどうかを確認し、その真の場合はすべての国を1つの単語(WORLDWIDE)に置き換えてください。

これは私が使用するものです:

<script>
    $(".worldwide").each(function() {
        if ($(this).text().length > 100) { $(this).text('WORLDWIDE')}
    })
</script>

関数内の$(this)に注意してください。

于 2012-05-21T20:50:44.513 に答える