0

第一条if语句不起作用,尽管我将块参数的值传递为physicalActivityBlock

function obj(select,block,idName) {
    var a=document.getElementById(select).value;
    var b=document.getElementById(block);
    var i=0;
    b.innerHTML = '';

   if(block=='physicalActivityBlock'){
       b.appendChild('<p>hello</p>');
   }
}
4

1 回答 1

3

if条件看起来不错,但是块中的代码是if错误的。appendChild不接受字符串。它接受一个 DOM 节点。

无论如何,您innerHTML可以这样做:

if (block == 'physicalActivityBlock') {
    b.innerHTML = '<p>hello</p>';
}

我可能会稍微改变逻辑,所以你只设置innerHTML一次:

function obj(select,block,idName) {
    var a=document.getElementById(select).value;
    var b=document.getElementById(block);
    var i=0;

   b.innerHTML = block=='physicalActivityBlock' ? '<p>hello</p>' : '';
}

如果你真的想使用appendChild,你必须创建元素:

var p = document.createElement('p');
p.innerHTML = 'hello';
b.appendChild(p);
于 2013-03-26T07:44:39.560 回答