使用类过滤器时,未捕获的typeError children()不是函数

时间:2018-08-13 16:52:34

标签: jquery class innerhtml children id

我具有以下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">
         <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>

我想更改第三个LI元素中最后一个SPAN元素的文本,因此我创建了以下jQuery脚本:

document.getElementById("c").children(".showing").innerHTML = "Peer Reviewed";

脚本返回错误:

  

未捕获的TypeError:document.getElementById(...)。children不是函数”

我在做什么错了?

我检查了previous answers,但所有情况都是非常不同的。

列表不是静态的,而是基于用户的选择,因此我必须使用最后一个LI元素的ID(它是静态的)。

始终只有一个响应可以回答此功能(即,在此ID下,始终只有一个SPAN此类)。

我相信问题是我得到的是一个数组,即使其中只有一个元素,我也需要以某种方式选择该特定元素。

我尝试了以下脚本,但是得到了相同的错误消息:

var limiterchange = document.getElementById("appcustomlimiter0removeli").children(".limiter");
    $limiterchange[0].innerHTML = "Peer Reviewed";

1 个答案:

答案 0 :(得分:1)

这将为您做事情。

var el = document.getElementById("c");
el.getElementsByClassName('showing')[0].innerHTML = "Peer Reviewed"

或者您可以使用:

var el = document.getElementById("c");
el.querySelector('span.showing').innerHTML = "Peer Reviewed"