appendChild不是一个函数-我做错了什么?

appendChild is not a function - what am I doing wrong?

本文关键字:错了 什么 函数 一个 appendChild      更新时间:2023-09-26

我知道这是一个很常见的错误,但我就是不明白为什么这不起作用。

我想动态地改变span的值。简单,是吧?我试过$span。innerHTML = "text"和$span。innerText = "text",它不做任何事情,但不会抛出任何错误。我最近的一次尝试是这样的:

var $resourceSpan = $("#divname"+dynamic_variable);
var stringVar = functionThatReturnsString();
      while( $resourceSpan.firstChild ) {
        $resourceSpan.removeChild( $resourceSpan.firstChild );
      }
      var textNode = document.createTextNode(stringVar);
      $resourceSpan.appendChild( textNode );

有人知道为什么我抛出这个错误吗?由于

你正在处理的是jQuery对象,方法像removeChild()和appendChild()属于dom元素而不是jQuery对象。

要删除一个元素的所有内容,你可以使用。empty(),设置一个元素的文本内容,你可以使用。text(),但使用。text()会取代现有的内容,所以在你的情况下,你可以使用

var $resourceSpan = $("#divname" + dynamic_variable);
var stringVar = functionThatReturnsString();
$resourceSpan.text(stringVar);

你想做这样的事情吗?

<html>
<head>
    <title>STACK OVERFLOW TESTS</title>
    <style>
    </style>
</head>
<body>
    <span>HI, IM SOME TEXT</span>
    <input type = 'button' value = 'Click me!' onClick = 'changeText()'></input> <!-- Change the text with a button for example... -->
    <script>
        var text = 'I AM THE NEW TEXT'; // The text to go in the span element
        function changeText(){
            var span = document.querySelector('span');
            span.innerHTML = text;
    }
    </script>
</body>
</html>