0

div動的に訴えるjQueryを埋めたいです。今問題は次のとおりです。

を使用.closest()してもdiv#articleDetaildivsクラス .date.viewsおよび.count. 私はDOM を.closest()登るのではなく、降りないと信じいます。

タグ内の名前のみがh4下部に入力されますdiv( #articledetail)

HTML:

<div id="make" class="span12">
    <article class="make"> <a href=""><img src="../img/175x175.jpg" alt="" /></a>

        <div class="content">
             <h4><a class="merc" href="#latestClick">Mercedes-Benz</a></h4>

            <div class="date">12 March 2013</div>
            <div class="count"><span></span> photos</div>
            <div class="views">Views: <span>32</span>
            </div>
        </div>
    </article>
    <article class="make latest"> <a href=""><img src="../img/175x175.jpg" alt="" /></a>

        <div class="content">
             <h4><a class="bmw" href="#latestClick">BMW</a></h4>

            <div class="date">12 March 2013</div>
            <div class="count"><span></span> photos</div>
            <div class="views">Views: <span>89</span>
            </div>
        </div>
    </article>
</div>
<div id="articleDetail"></div>

JS:

$('#make article h4 a').click(function (e) {
    e.preventDefault();
    $('#latestInner, #make, #models').hide(200);
    $('#article').show(500);
    //fill articleDetail (name, date, views, count)
    $('#articleDetail').empty();
    $(this).closest('.date').clone().appendTo('#articleDetail'); //date
    $(this).closest('.count').clone().appendTo('#articleDetail'); //count
    $(this).closest('.views').clone().appendTo('#articleDetail'); //views
    $(this).parent().clone().appendTo('#articleDetail'); //name
.....

これを達成する方法はありますか?

注: ID を追加したくないし、HTML の構造を変更したくありません適切なクラスを呼び出して に追加する方法が必要#articledetailです。

.views .count and .date
4

3 に答える 3

2

あなたは.closest木を下るのではなく、上に行くのです。検索する要素はすべて、リンクの祖父母の子です。それで、あなたは何をしますか?最初に祖父母を見つけてから、その子を検索します。

var $content = $(this).closest('.content');
$content.find('.date').clone().appendTo('#articleDetail');
// ...
于 2013-03-23T12:41:04.410 に答える
1

closest指定されたセレクターに一致する最も近いアセンダントを見つけます。ただし、マークアップでは要素<div class="date">の祖先ではないaため、何も見つかりません。ただし、機能するのは次のようなものです。

$(this).closest('.content').find('.date')
于 2013-03-23T12:40:06.723 に答える
1

ラッパーに登って、その中のものを見つけてください:

$(this).closest('.content').find('.date.')
于 2013-03-23T12:40:12.753 に答える