2013-03-01 7 views
0

Я новичок в jQuery, и у меня есть проблема с получением значения, которое мне нужно из переменной. Более конкретный У меня есть этот список в html-файле.jQuery выберите одно значение из переменной

<ul id="menu"> 
<li class="mainmenu" id="newsarticles"><a href="#">News &amp; articles</a> 

    <ul id="newsarticles"> 
     <li class="submenu" id="news"> <a href="#">News</a> 

     </li> 
     <li class="submenu" id="articles"> <a href="#">Articles</a> 

     </li> 
    </ul> 
    <li class="mainmenu" id="contactus"><a href="#">Contact Us</a> 
    </li> 
</ul> 

Теперь я хочу использовать ту же функцию как в основном меню, так и в подменю.

$("#menu li").click(Menu_function); 

Моя проблема в том, что когда я нажимаю на подменю, переменная $ (this) имеет два значения. один для li внутри подменю и один для li mainmenu.

теперь я хотел бы сделать что-то подобное в моей функции:

var currentId = $(this).attr('id'); 

Как я мог получить только одно значение?

Любая помощь приветствуется.

+0

какое значение вам нужно? родитель или его ребенок? –

ответ

1

Вы можете добавить функцию щелчка по обоим пунктам, используя «каждый» селектор:

$('#menu li').each(function(index) { 
    $(this).click(function() { 
     var id = $(this).attr('id'); 

     // do whatever you need to here 
    }); 
}); 
+1

Манн ты супер быстрый ... – Amar

1

Вы хотите

$('#menu').click(function(evt) { 
    var currentId = $(evt.target).closest('li').attr('id'); 
}); 
0

Вы можете использовать метод each из JQuery, чтобы пройти их все и добавьте onclick на них. что-то подобное, что dcp упомянул в его ответе:

$('#menu li').each(function() { 
    // add click method on this element ($(this)) 
    $(this).click(function() { 
    }); 
}); 
Смежные вопросы