0

アーティストの名前だけにアクセスしたいのですが、この場合は「Guns N Roses」です。私はすでに解決策を持っています: http://jsfiddle.net/QRBgp/4/

しかし、私はこれにもっと短い方法があることに興味がありますか? より良い方法?「それがうまくいくなら、なぜあなたは尋ねるのですか」と言う人もいると思いますが、私は興味があります.

HTML:

<div id="now_playing" class="tab ui-tabs-panel ui-widget-content ui-corner-bottom">
<div class="banner"> … </div>
<div class="banner_wrap banner_top_left"></div>
<div class="banner_wrap banner_bottom_left"></div>
<div class="banner_wrap banner_top_right"></div>
<div class="banner_wrap banner_bottom_right"></div>
<div class="play-cont">
    <div class="curr-song-block clearfix">
        <div class="thumb"> … </div>
        <div class="descr">
            <em> … </em>
            <h3> … </h3>
            <div class="data-block">
                <div class="data">
                    <strong> by </strong>
   Guns N Roses
</div>
                <div class="data">
                  <strong> on </strong>
   Appetite for Destruction
</div>
                </div>
            </div><p> … </p>
        </div>
    </div>
    <div id="accordion" class="ui-accordion ui-widget ui-helper-reset" role="tablist"> … </div>
</div>

私が使用したjQuery:

$( ".data-block" ).click(function() {
alert($('#now_playing').find('.descr').find('.data-block').find('.data:first-child').clone().children("strong").remove().end().text()); 
});
4

3 に答える 3

1

<span />名前を単純にラップしてクラス名を付けない理由が知りたいです。次に、クラスごとに選択できます。clone()これにより、マークアップとコードが次のように作成されます。a) より読みやすく理解しやすく、b) 1 つの単語を削除するだけで何もする必要がないため、高速になります。

HTML

<div class="data">
  <strong>by</strong> <span class="artist">Guns n' Roses</span>
</div>

jQuery

#('#now-playing .descr .data:first-child').find('.artist').text();
于 2013-08-22T15:04:56.777 に答える
1
$( ".data-block" ).click(function() {
alert($(this).('.data:first-child').clone().children("strong").remove().end().text());});
于 2013-08-22T15:07:52.013 に答える
1

あなたはただ使うことができます:

 alert($('#now_playing .data:first').text().replace(/\s+by\s+/,''));
 //or:
 alert($.trim($('#now_playing .data:first').contents()[2].textContent));

ただし、短くしたい場合は、テキスト ノードに要素を使用した方が簡単です。この作業がはるかに簡単になります。そのような$("#now_playing .artist_name").text()

于 2013-08-22T15:03:51.267 に答える