2009-02-15 53 views
20

Tại sao nó không trả về giá trị trong 'li'? Tôi đang làm gì sai?Cách lấy giá trị phần tử trong jQuery

$("#list li").click(function() { 
    var selected = $(this).val(); 
    alert(selected); 
}) 
+0

Bạn đang cố gắng làm gì? Danh sách html của bạn trông như thế nào? – markt

Trả lời

53

Bạn có muốn HTML hoặc văn bản nằm trong thẻ li không?

Nếu vậy, sử dụng một trong hai:

$(this).html() 

hay:

$(this).text() 

Các val() chỉ dành cho biểu mẫu form.

+0

Ý của bạn là gì về "trường biểu mẫu"? Bạn có thể cho tôi một ví dụ? tnx – stack

2

Lý do không có giá trị. Chỉ các phần tử liên quan đến biểu mẫu chẳng hạn như đầu vào, văn bản và chọn có giá trị.

2

lẽ nhiều nhất, bạn muốn một cái gì đó như thế này:

$("#list li").click(function() { 
     var selected = $(this).html(); 
     alert(selected); 
}); 
3

Sử dụng .text() hoặc .html()

$("#list li").click(function() { 
     var selected = $(this).text(); 
     alert(selected); 
}); 
6
<ul id="unOrderedList"> 
<li value="2">Whatever</li> 
. 
. 



$('#unOrderedList li').click(function(){ 
     var value = $(this).attr('value'); 
    alert(value); 
    }); 

bạn tìm kiếm "giá trị" thuộc tính bên trong "li" tag

0
$("#list li").click(function() { 
     var selected = $(this).html(); 
     alert(selected); 
}); 
1
<div class="inter"> 
     <p>Liste des Produits</p> 
     <ul> 
      <li><a href="#1">P1</a></li> 
      <li><a href="#2">P2</a></li> 
      <li><a href="#3">P3</a></li> 
     </ul> 
    </div> 

     $(document).ready(function(){ 
      $(".inter li").bind(
      "click", function(){ 
       alert($(this).children("a").text()); 
      }); 
     }); 
1

Bạn có thể làm tương tự bằng cách sử dụng jQuery on().

$("#list").on('click','li',(function() { 
    var selected = $(this).text(); //or .html() 
    alert(selected); 
}) 
0

Để có được giá trị của li chúng ta nên sử dụng $ ("# danh sách li") click (function() {var selected = $() .html này();.

hoặc

var selected = $(this).text(); 

alert(selected); 

})

Các vấn đề liên quan