0

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

我尝试了以下事情

$('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

4 回答 4

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
于 2013-08-07T20:13:11.193 回答
2

尝试:

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

jsFiddle 示例

点击图片时,需要使用.closest()向上遍历到包含的 div,使用 find 向下返回到.find()标题。

于 2013-08-07T20:10:59.353 回答
1

你可以试试:

$(this).parent().find('.caption').html();
于 2013-08-07T20:14:30.013 回答
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>  
 }
于 2013-08-07T20:25:18.723 回答