2012-04-04 4 views
0

после нажатия на любой элемент li, я хочу получить имя класса ссылки (элемент «a») в поле предупреждения. Например, нажав «Один», вы увидите «m», а для «two» - «n»;найти имя класса ссылки под «li» с помощью jquery

HTML:

<ul> 
<li ><a class="m">One</a></li> 
<li><a class="n">Two</a></li> 

</ul> 

JavaScript:

<script type="text/javascript"> 

var my_func=function(){ 

var link_class; // find this class name 

alert("link class name ="+ link_class); 



}; 


$(document).ready(function(){ 

$('ul li').click(my_func); 


}); 

</script> 

Как я могу найти значение переменной 'link_class' с помощью JQuery?

ответ

2
var my_func = function(){ 
    var link_class = $(this).find('a').attr('class'); // find this class name 
    alert("link class name ="+ link_class); 
}; 

$('ul li').click(my_func); 

или в более короткий путь, без использования новых переменных для функции выражения

$('ul li').click(function() { 
    var link_class = $(this).find('a').attr('class'); // find this class name 
    alert("link class name ="+ link_class); 
}); 
0
<script type="text/javascript"> 

var my_func=function(){ 

var link_class; // find this class name 

link_class = $(this).children('a').attr('class'); 

alert("link class name ="+ link_class); 



}; 


$(document).ready(function(){ 

$('ul li').click(my_func); 


}); 

</script> 
+0

дети не будут работать, в его коде нет детей из ' элемент. В большинстве случаев это братья и сестры, но это приведет к возврату всех подобных классов схожих элементов 'a' с элементом, а не с элементом, для которого он щелкнул. –

+0

Думаю, вы захотите отозвать этот комментарий. Мой метод ищет тег привязки, который является прямым дочерним элементом элемента li. После чего он устанавливает переменную link_class в атрибут класса якоря. – trickyzter

+0

Да, вы правы, я, должно быть, слишком быстро прочитал его вопрос, я «предположил», что, поскольку у него есть '' 'элементы внутри' li', нажав 'a' jQuery' this', он будет считаться 'a' а не 'li'. Но так как он использует 'a' просто для того, чтобы найти имя класса (' принятие 'снова это мертвые ссылки или # ссылки), тогда ему нужно будет убедиться, что он использует 'preventDefault()' для этих тегов 'a'. Если они «мертвые ссылки», то я бы предложил использовать вместо него «» и просто CSS, чтобы они выглядели как ссылки, если это тот стиль, который он хотел достичь. –

0
$("li a").click(function(){ 
    alert($(this).attr('class')); 
}); 
+0

Это правильно. Вопрос является частью проблемы в реальном времени. По какой-то причине я не могу использовать предложенный выбор. –

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