2013-09-18 3 views
0

мне нужно, чтобы получить экземпляр текущего выбранного Ли, который динамически генерируется, я использую ниже код:Как получить экземпляр выбранного Li с помощью JQuery

с помощью $ (это) не дает экземпляр текущего выбранного ли. Пожалуйста, смотрите подробности ниже код:

// Добавить классы по выбору сообщения

$("ul").on("click", "li", function() { AttachEvents(); }); 

     function AttachEvents() { 
      parentID = $(this).('li label[id="discussionID"]').val(); 
     }; 

ниже является HTML-код:

<ul id="ui-discussion"> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">24 Jul 2013</label><label>Loremipsumdolorsitamet, 
          consecteturadipisicingelit,seddoeiusmodtemporincididuntutlaboreetdoloremagnaaliqua.Ut</label><label 
           id="discussionID">983402</label></div> 
      </div> 
     </li> 
     <ul> 
      <li class="ui-discussion-childmessage"> 
       <div> 
        <div id="empImage"> 
         <img src="Images/emp2.png"></div> 
        <div> 
         <label id="empName"> 
          Vincent Cash</label><label id="chatdate">24 Jul 2013</label><label>Loremipsumdolorsitamet,consecteturadipisicingelit</label></div> 
       </div> 
      </li> 
     </ul> 
     <ul> 
      <li class="ui-discussion-childmessage"> 
       <div> 
        <div id="empImage"> 
         <img src="Images/emp3.png"></div> 
        <div> 
         <label id="empName"> 
          Tucker Montgomery</label><label id="chatdate">24 Jul 2013</label><label>Loremipsumdolorsitamet,consecteturadipisicingelseddoeiusmod</label></div> 
       </div> 
      </li> 
     </ul> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>Hi</label><label 
          id="discussionID">590079</label></div> 
      </div> 
     </li> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>This is a test message</label><label 
          id="discussionID">424769</label></div> 
      </div> 
     </li> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>New Message</label><label 
          id="discussionID">255351</label></div> 
      </div> 
     </li> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>Hi</label><label 
          id="discussionID">2030</label></div> 
      </div> 
     </li> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>hi hi hi</label><label 
          id="discussionID">154860</label></div> 
      </div> 
     </li> 
     <ul> 
      <li class="ui-discussion-childmessage"> 
       <div> 
        <div id="empImage"> 
         <img src="Images/emp1.png"></div> 
        <div> 
         <label id="empName"> 
          Arti Agarwal</label><label id="chatdate">9/18/2013</label><label></label></div> 
       </div> 
      </li> 
     </ul> 
     <ul> 
      <li class="ui-discussion-childmessage"> 
       <div> 
        <div id="empImage"> 
         <img src="Images/emp1.png"></div> 
        <div> 
         <label id="empName"> 
          Arti Agarwal</label><label id="chatdate">9/18/2013</label><label></label></div> 
       </div> 
      </li> 
     </ul> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>hi</label><label 
          id="discussionID">282729</label></div> 
      </div> 
     </li> 
     <ul> 
      <li class="ui-discussion-childmessage"> 
       <div> 
        <div id="empImage"> 
         <img src="Images/emp1.png"></div> 
        <div> 
         <label id="empName"> 
          Arti Agarwal</label><label id="chatdate">9/18/2013</label><label>hi</label></div> 
       </div> 
      </li> 
     </ul> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>hi</label><label 
          id="discussionID">587583</label></div> 
      </div> 
     </li> 
     <li class="ui-discussion-parentmessage ui-state-active"> 
      <div> 
       <div id="empImage"> 
        <img src="Images/emp1.png"></div> 
       <div> 
        <label id="empName"> 
         Gareth Sweet</label><label id="chatdate">9/18/2013</label><label>HI</label><label 
          id="discussionID">395700</label></div> 
      </div> 
     </li> 
    </ul> 
+1

Ваш код заполнен синтаксическими ошибками и не будет работать вообще? – adeneo

+0

«Как и в случае с jQuery 1.7, метод .live() устарел. Используйте .on() для присоединения обработчиков событий. Пользователи более старых версий jQuery должны использовать .delegate(), предпочитая .live()." – asifrc

+0

'id', если элемент должен быть уникальным ... используйте класс вместо ... у вас есть несколько элементов с идентификаторами' empImage', 'discussionID',' chatdate' и т. Д. –

ответ

0

вот рабочий пример: http://jsbin.com/eTUxAzU/1/ вместо использования jquery on.

parentID = $(this).find('li label[id="discussionID"]').val(); 
does not have val() method. 

instead u should use 
parentID = $(e.target).parent().closest('li').find('label[id="discussionID"]').text(); 
+0

Работал как шарм !! спасибо тонну !!! –

0

this внутри обработчика событий относится к li

$(this).addClass('ui-state-active'); 

обновление:

$("ul").on("click", "li", AttachEvents); 

    function AttachEvents() { 
     parentID = $(this).find('label[id="discussionID"]').val(); 
    }; 
+0

@adeneo да ... Это была проблема с формулировкой .... –

+0

Нет проблем, просто на самом деле? Ваш ответ не поможет, когда следующая строка говорит '$ (this). ('Li label [id =" discussionID "]')' – adeneo

+0

@adeneo есть еще много ошибок .... не знаю с чего начать –

0

$ (это) не дает экземпляр текущего выбранного литий

Попробуйте использовать event параметр вместо this, чтобы получить доступ к текущему элементу, например:

<ul class="target" > 
      <li>Pear</li> 
      <li>Apple</li> 
      <li>Plum</li> 
     </ul> 

$(".target li").live("click", function(event){ 
console.log(event.currentTarget); 
}); 

Выход консоли должен быть таким:

<li>Pear</li> 
+0

Так как $ (this) дает [Window] event.currentTarget дает #document. :( –

Смежные вопросы