将 'div' 元素作为参数传递给 JavaScript 函数

Pass 'div' element as parameter to JavaScript function

我需要创建、装饰子 'divs' 并将其附加到现有的。比如appendChildren执行后,跟随divs

    <div id="a">
      <div id="b">
      </div>
    </div>

应采用以下形式(假设 decorateDiv 在新 div 中添加文本 "This is new div")

    <div id="a">
      <div id="b">
        <div>"This is new div"</div>
      </div>
      <div>"This is new div"</div>
    </div>

这是我的代码

    function appendChildren() {
    var allDivs = document.getElementsByTagName("div");
    for (var i = 0; i < allDivs.length; i++) {
    var newDiv = document.createElement("div");
    decorateDiv(newDiv);
    allDivs[i].appendChild(newDiv);
    }
    }


    function decorateDiv(div) {
      var x = document.getElementByTagName("div");
      var t = document.createTextNode("This is new div");  
    x.appendChild(t); 
    }

我对 JavaSpript 完全陌生。我究竟做错了什么?请帮我修复错误

您传递给函数 'decorateDiv' 的参数 'div' 未在任何地方使用。 您可以像下面这样更改 decorateDiv 函数:

function decorateDiv(div) {  
var t = document.createTextNode("This is new div");   
div.appendChild(t);   
}

希望对您有所帮助!!

您没有使用参数 divdecorateDiv 应该如下所示:

function decorateDiv(div) {
   //div is the object element
   var t = document.createTextNode("This is new div");  
   div.appendChild(t); 
}

"allDivs" 变量在将 appendChild 附加到任何 div 时得到更新,因为要存储 "div" TagName 的元素数组。 因此,使用 class 获取 divs.

<div id="a" class="test">
A  
<div id="b" class="test">
    B  
</div>
</div>

这是用户脚本:

function appendChildren() {
        var allDivs = document.getElementsByClassName("test");
            for (var i = 0 ; i < allDivs.length ; i++) {
                var newDiv = document.createElement("div");
                decorateDiv(newDiv);
                allDivs[i].appendChild(newDiv);
            }
        }
        function decorateDiv(div) {
          var t = document.createTextNode("This is new div");  
            div.appendChild(t); 
        }
        appendChildren();

而且你没有使用传递给修饰函数的参数。

这行得通。试试这个..