0

我的问题很直接。

下面的代码正确记录“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

4 回答 4

6

因为孩子是一个跨度你需要得到text()与否。html()val()

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

演示:小提琴

于 2013-09-15T11:07:48.403 回答
2

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

var spanText = $(this).text();
于 2013-09-15T11:08:22.873 回答
1

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

V/s

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

所以试试

$(this).children().text() 
于 2013-09-15T11:11:15.140 回答
1

你打错字了。(this)计算结果为 htmlAnchorElement,而不是 jQueryElement。因此它没有方法.children()。应该是$(this)

于 2013-09-15T11:20:55.630 回答