2

我有一个清单:

<ul id="list">
   <li class="one">Item A</li>
   <li class="one">Item B</li>
   <li class="two">Item C</li>
   <div id="pressed">Submit</div>
</ul>

当按下“提交”时,我想检索具有“二”类的列表项的值。在这种情况下,按下提交将返回“项目 C”。这是我尝试过的 jQuery:

$("#pressed").click(function() {
   var v = $('#list').filter('.two').val();
   alert(v);
});

但是这一切的回报是0。最好的方法是什么?在任何时候,只有一个<li>人会有一个“二”类。

4

3 回答 3

8

首先,您的 HTML 无效,因为div元素不能是以下元素的子级ul

<ul id="list">
   <li class="one">Item A</li>
   <li class="one">Item B</li>
   <li class="two">Item C</li>
</ul>
<div id="pressed">Submit</div>

其次,text()是你想要的财产,而不是val()

$("#pressed").click(function() {
   var v = $('#list').find('.two').text();
   alert(v);
});

示例小提琴

于 2013-11-06T11:42:11.613 回答
2

您需要 html() 或 text() 而不是 val()。函数 val() 用于输入元素,如文本、复选框等。还将 div 放在 ul 之外,以使您的 html 有效,正如 Rory McCrossan 指出的那样

现场演示

var v = $('#list').filter('.two').html();
于 2013-11-06T11:41:59.893 回答
1

在 Rory McCrossan 使用 HTML 更正之后,您可以执行此操作。

$("#pressed").click(function() {
   alert($('#list .two').text());
});
于 2013-11-06T13:36:24.243 回答