不能在jQuery手风琴的DIV中元素的ID

时间:2015-09-29 14:10:26

标签: jquery find accordion

我的手风琴看起来像这样:

 @for (int i = 0; i < Model.Count; i++)
        {
            <h3 id= '@Model[i].UserId'>@Model[i].UserName</h3>
            <div >
                @Html.HiddenFor(x => Model[i].UserId, new { @id = "txtId" + i })
                <table style="font-size:xx-small">
                    <tr>
                         <td>
                                            <img id='img + @Model[i].UserId' alt="" class="image" />
                                        </td>

这确定了与H3头的ID不同的图像元素的id。我可以像这样得到标题的ID:

 $("#accordion > h3").click(function () {
        var currentID = $('.ui-accordion-header-active').attr('id');
        var divid = "#" + currentID;
        var imgId = $(divid).find(".image").attr("id");
        imgId = $('.ui-accordion-header-active .image').attr("id");
        alert(imgId);
    });

但我无法获得图片元素的ID。我究竟做错了什么?在手风琴中点击此人之前,我不想加载任何图片。

1 个答案:

答案 0 :(得分:1)

您正在使用.find获取图片的id,其中.find尝试获取引用的children选择器。因此,您需要再添加一个.next以从children获取div,因为.image位于您div旁边的header内:

$("#accordion > h3").click(function () {
        var currentID = $('.ui-accordion-header-active').attr('id');
        var divid = "#" + currentID;
        var imgId = $(divid).next().find(".image").attr("id"); //.next here
        alert(imgId);
});

再次,即使以下行也会尝试在.image

中找到子header
imgId = $('.ui-accordion-header-active .image').attr("id");

我认为你不再需要这个了event,所以我把它删除了..