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

时间:2015-03-13 07:02:34

标签: javascript html dom appendchild createelement

我需要创建,装饰和追加儿童' divs'现有的。例如,在执行appendChildren之后,执行divs

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

应采用以下形式(假设decorateDiv添加文字&#34;这是新div&#34;在新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的新手。我究竟做错了什么?请帮我修复错误

3 个答案:

答案 0 :(得分:0)

您传递给函数'decorateDiv'的参数'div'没有被使用过。 您可以更改decorateDiv函数,如下所示:

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

希望这会有所帮助!!

答案 1 :(得分:0)

您未使用参数div,而decorateDiv应如下所示:

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

答案 2 :(得分:0)

&#34; allDivs&#34;变量获取更新何时将appendChild添加到任何div,因为要存储&#34; div&#34;的元素数组。标签名称。 因此,使用class来获取div。

<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();

而且你也没有使用传递给装饰功能的参数。

这会奏效。试试这个..