2015-09-29 1 views
0

Мой аккордеон выглядит следующим образом:Может не ID элемента в DIV с JQuery аккордеон

@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> 

Это устанавливает идентификатор для изображения элемента, отличного от ID заголовка H3. Я могу получить идентификатор заголовка следующим образом:

$("#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); 
    }); 

Но я просто не могу получить идентификатор элемента изображения. Что я делаю не так? Я не хочу загружать изображение, пока человек не будет нажат на аккордеоне.

ответ

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, поэтому я просто удалил его.