2013-04-27 89 views
2

我正在尝试在无序列表中选择第三个项目,但这样做有困难。我试图让'项目3'返回。下面是我有没有工作。有什么建议?如何从无序列表中选择第n个项目?

$("#sortable :nth-child(3)").val; 

无序列表:

<ul id="sortable"> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li> 
    <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li> 
</ul> 
+1

使用了'.val'时,它实际上是'.VAL()',但要使用'的.text()'或'.html()' – 2013-04-27 00:20:59

回答

2

尝试:$("#sortable :nth-child(3)").text();

您没有使用正确的语法,你就必须添加括号,像这样.val()和调用的列表项,但列表项没有定义的值。

<li class="ui-state-default" value="3"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li> 

既然你是从元素中的文本之后,使用.text()代替.val():如果您已指定的列表项的值,它会工作。

+1

注意:'.val()'只有在数值时才有效。这很奇怪,但是'value'是列表项的一个有效属性,只要该属性的值是数字(并且jQuery似乎会尊重它)。请参阅https://developer.mozilla.org/en-US/docs/HTML/Element/li。 – bfavaretto 2013-04-27 00:38:06