我的问题很简单。
下面的代码正确记录“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>
答案 0 :(得分:5)
答案 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)
。