2013-04-02 3 views
1

У меня есть четыре знака li внутри тега ul.Как получить текст li без предоставления им идентификаторов?

Я хочу получить текст внутри тега li, когда я выбираю один ли, и я хочу скрыть три других значения li.

На странице все еще должно отображаться только выбранное.

<ul id="names"> 
    <li>a</li> 
    <li>b</li> 
    <li>c</li> 
    <li>d</li> 
</ul> 

ответ

2

Это отвечает обе части вашего вопроса:

$('#names li').click(function(){  
    var x = $(this).text(); // gets the text of the selected li 
    alert(x); // displays the text inside the selected li 
    $(this).siblings().hide();​​​​ // hides all other li's 
}); 

Вот рабочий jsFiddle для вашего примера.

+0

.val() не получит текст. Я думаю, что это должно быть '.text()', как показано выше. –

+0

@MayuMayooresan Изменено. Мой ответ, кажется, единственный, отвечающий на весь вопрос. – lifetimes

3
$('#names li').click(function(){ 
    $(this).siblings().hide(); 
}); 
+1

+1 простой и сладкий. Works [like magic] (http://jsfiddle.net/mayooresan/CRCJ7/) –

0

Попробуйте, как этот чек

$("#names li").click(function(){ 
    var selected = $(this); 
    alert('You have selected '+ $(this).text()); 
    $("#names li").hide(); 
    $(this).show(); 
}); 

скрипку DEMO

+0

Это условие _if_ всегда будет истинным, потому что _ $ (this) _ всегда будет возвращать новый объект, который никогда не будет равен объекту, который _selected_ относится к ... – nnnnnn

+0

Вы видели мое редактирование .. ?? – Gautam3164

1

Как насчет этого? Он скроет их все и отобразит тот, который был нажат с помощью селектора jQuery.

$('#names li').click(function() { 
    $('#names li').hide(); 
    $(this).show(); 
}) 

Пример использования: http://jsfiddle.net/eqUD3/

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