2009-02-15 99 views
20

为什么它不返回'li'中的值?我究竟做错了什么?如何在jQuery中获取元素值

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

你到底想干什么?你的html列表是什么样的? – markt 2009-02-15 20:36:10

回答

53

您是否想要li标记内的HTML或文本?

如果是这样,使用:

$(this).html() 

或:

$(this).text() 

val()仅用于表单字段。

+0

你是什么意思的“表单域”?你可以给我一个例子吗? TNX – stack 2015-12-05 23:55:04

2

李没有价值。只有与表单相关的元素(如input,textarea和select)才具有值。

2

最可能的是,你想是这样的:

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

使用的.text()或.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); 
    }); 

你想找的属性 “值” 里面的“li”标签

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

你可以使用jQuery on()来做同样的事情。

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

为了得到李的价值,我们应该用 $( “#列表里”)点击(函数(){VAR 选择= $(本)的.html();

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

alert(selected); 

})