0

我想填写一个div动态起诉的jQuery。现在问题如下:

使用并.closest()不能填充我div#articleDetaildivs.date和. 因为我相信爬上DOM 而不是下来.views.count.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 回答