使用其他元素获取DIV的HTML

时间:2013-08-07 20:08:06

标签: javascript jquery

我有一堆缩略图。其中我知道我的JQuery脚本中的link - 但是,我需要从.caption获取HTML,而我无法做到这一点。

我尝试过以下事情

$('a.thumbnail').click(function() {
    $(this).closest('.caption').html()
    $(this).find('.caption').html()
    $(this).children('.caption').html()
});

这是HTML:

<div class="thumbnail">
    <a href="#" class="thumbnail">
        <img src="{{ URL::asset($item->image) }}" alt="">
    </a>
    <div class="caption" align="center">
        {{ $item->name }}
    </div>
</div>

4 个答案:

答案 0 :(得分:4)

这也有效,因为.caption是您a的兄弟姐妹:

$('a.thumbnail').click(function() {
    $(this).siblings('.caption').html();
});

为什么你的工作不起作用:

$(this).closest('.caption').html() // .caption is not an ancestor of the a
$(this).find('.caption').html()  // .caption is not a descendant of the a
$(this).children('.caption').html() // .caption is not a child of the a

答案 1 :(得分:2)

尝试:

$('a.thumbnail').click(function() {
    $(this).closest('div.thumbnail').find('.caption').html();
});

<强> jsFiddle example

点击图片后,您需要使用.closest()遍历到包含的div,并使用find返回.find()标题。

答案 2 :(得分:1)

你可以尝试:

$(this).parent().find('.caption').html();

答案 3 :(得分:0)

试试这个:

$(".caption").text();

或者

$(".thumbnail").find(".caption").text();

虽然这些可能会给你整个班级。有没有想过添加ID? 我在使用Razor引擎之前已经完成了这个:

 @foreach (var temp in ListOfStuffWithIds)
 {
   <tr class="class" >
       <td class="tdClass" >
          <input id="@temp.Id" type="checkbox" /></td>
        <td class="tdClass2">@temp.Id</td>
        <td>@temp.Name</td>
    </tr>  
 }