2017-05-20 1 views
0

複数のスパンタグに挿入するには、アルファベットの特定の文字を使用する必要があります。 20行の.text()が必要か、より効率的な方法がありますか?ありがとう。.text()を使用して複数の子スパンタグに文字/数字シーケンスを挿入します。より効率的な方法がありますか?

$(document).ready(function(){ 
    $(".owl-page:first-child span").text("A"); 
    $(".owl-page:nth-child(2) span").text("C"); 
    $(".owl-page:nth-child(3) span").text("D"); 
    $(".owl-page:nth-child(4) span").text("E"); 
    $(".owl-page:nth-child(5) span").text("F"); 
}); 

答えて

1

他の回答に似ていますが、わずかに異なるアプローチ:

JS Fiddle

var letters = { 
    1: 'A', 
    2: 'B', 
    3: 'C', 
    4: 'D', 
    5: 'E', 
    6: 'F' 
} 

$.each(letters, function(e) { 
    $('.owl-page:nth-child(' + e + ') span').text(this); 
}); 
+0

そして、 '$(this)[0]'はもっと単純に 'this'と書かれています。 – Barmar

+0

実際、 '$(this)[0]'はおそらく全く動作しません。 'this'は' C'のような文字列になるので、 '$(this)'は ''要素のセレクタです。これで何も見つからないので、 '$(this)[0]'は 'undefined'になります。 – Barmar

+0

あなたはフィドルをチェックしましたか?それはすべて動作します。しかし、ええ、 'これは代わりに動作します。しかし、eはインデックスを参照していないため、+ 1は必要ありません。 –

0

文字を配列に入れて.each()メソッドで使用できます。

var letters = ['A', 'C', 'D', 'E', 'F']; 
var counter = 0; 

$(".owl-page > * span").each(function(){ 
    if(counter >= letters.length) 
     return false; 
    $(this).text(letters[counter]); 
    counter++; 
}); 
+1

私はもともと私の答えでそのセレクタを使用し、私はそれを変えました。各子供に複数のスパンがある場合はどうなりますか? – Barmar

+0

@Barmar良い点! –

関連する問題