Jquery 使用类筛选器时,Uncaught typeError children()不是函数
我有以下HTML结构:Jquery 使用类筛选器时,Uncaught typeError children()不是函数,jquery,class,innerhtml,children,Jquery,Class,Innerhtml,Children,我有以下HTML结构: <ul> <li id="a"> <a class="x"> <span class="hidden"></span> </a> <span class="showing">Some text</span> </li> <li id="b"> <a class="x
<ul>
<li id="a">
<a class="x">
<span class="hidden"></span>
</a>
<span class="showing">Some text</span>
</li>
<li id="b">
<a class="x">
<span class="hidden"></span>
</a>
<span class="showing">Some text</span>
</li>
<li id="c">
<a class="x">
<span class="hidden"></span>
</a>
<span class="showing">Some text</span>
</li>
</ul>
脚本返回一个错误:
未捕获的TypeError:document.getElementById(…)。子对象不是函数“
我做错了什么
我查过了,但这些都是完全不同的情况
列表不是静态的,而是基于用户选择构建的,因此我必须使用最后一个LI元素的ID(它是静态的)
始终只有一个响应响应此函数(即,此ID下的此类始终只有一个跨度)
我认为问题是我得到的是一个数组,即使它只有一个元素,我需要以某种方式选择那个特定的元素
我尝试了以下脚本,但收到了相同的错误消息:
var limiterchange = document.getElementById("appcustomlimiter0removeli").children(".limiter");
$limiterchange[0].innerHTML = "Peer Reviewed";
这会对你有好处的
var el = document.getElementById("c");
el.getElementsByClassName('showing')[0].innerHTML = "Peer Reviewed"
或者,您也可以选择使用:
var el = document.getElementById("c");
el.querySelector('span.showing').innerHTML = "Peer Reviewed"
HTMLElement.children
不是函数,而是属性。@根据文档,它应该返回所选元素的所有直接子元素:是的,但是getElementById
不返回jQuery元素。它返回HTML元素。为了能够使用jQuery的.children
,您必须使用jQuery元素。如下:$(“#appcustomlimiter0removeli”).children()
谢谢@Phiter。我接受了下面的答案,但我现在明白了你的意思。第一个选项返回了一个错误:Uncaught TypeError:limiterchange.getElementsbyClassName不是一个函数。第二个选项非常有效!非常感谢!
var el = document.getElementById("c");
el.querySelector('span.showing').innerHTML = "Peer Reviewed"