获取此子值的jQuery

时间:2013-09-15 11:06:24

标签: jquery children

我的问题很简单。

下面的代码正确记录“this”,并打印出所需的子元素:

console.log( $(this).children()[0] );

打印:

<span>test result</span>

尝试检索其值会引发异常。我正在使用:

$((this).children()[0]).val()

引发:

Property 'children' of object [object HTMLAnchorElement] is not a function

我的语法有什么问题?

HTML:

<li>
<a href="#">
<span>example 1</span>
<span>example 1 sibling</span>
</a>
</li>

<li>
<a href="#">
<span>example</span> 
<span>example 2 sibling</span>
</a>
</li>

<li>
<a href="#">
<span>example</span> 
<span>example 3 sibling</span>
</a>
</li>

<li>
<a href="#">
<span>example</span>
<span>example 4 sibling</span></a>
</li> 

4 个答案:

答案 0 :(得分:5)

因为孩子需要获得text()html()而不是val()

$(this).children().eq(0).text()

演示:Fiddle

答案 1 :(得分:2)

首先,当span元素没有值时,您将获取所选的jQuery对象,将其转换为本机元素,然后返回到jQuery对象并尝试获取它的值。此外,示例中的span没有任何子元素,因此使用children()是多余的。试试这个:

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

答案 2 :(得分:1)

HTML元素是一个内联元素,可用作文本的容器。

V /秒

HTML元素是一个块级元素,可用作对其他HTML元素进行分组的容器。

所以试试

$(this).children().text() 

答案 3 :(得分:1)

你打错了。 (this)求值为htmlAnchorElement,而不是jQueryElement。因此它没有方法.children()。它应该是$(this)