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

0

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

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

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

$("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>
Теги:

3 ответа

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

Попробуйте использовать параметр 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. :(
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"]')
Показать ещё 6 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню