首页 > 用createElement创建元素遇到问题,大侠们帮忙看一下

用createElement创建元素遇到问题,大侠们帮忙看一下

想创建一个简称和全称的列表,js代码没反应,大侠们帮忙看一下,多谢!!

<!DOCTYPE html>
<html >
<head>
  <meta charset="utf-8" />
  <scriptsrc="scripts/hi.js"></script>
</head>
<body>
       <p>Portland, <abbr title="Oregon">OR</abbr></p>
       <p>Seattle, <abbr title="Washington">WA</abbr></p>
       <p>Sacramento, <abbr title="California">CA</abbr></p>
</body>
</html>

下面是对应的JavaScript代码..............................

function xx()
{
    var e1=document.getElementsByTagName("abbr");
    var a1=e1[0].getAttribute("title");
    var t1=e1[0].innerHTML;
    for(var i=0;i<e1.length;i++){
        e2=document.createElement("h3");
        e3=document.createElement("p");
        e2.innerHTML="t1";
        e3.innerHTML="a1";
        body.insertBefore(e2,e3);
        body.appendChild(e2);
    }
}
window.onload=xx;

下图是期望结果:


花了点时间理解你的意图,不得不说你的变量命名实在是太 乱 了!
所以虽然看你自己解决了问题,我还是决定贴上来

window.addEventListener('load', function(){
    var elements=document.getElementsByTagName("abbr");
    for(var i=0;i<elements.length;i++){
        var full=document.createElement("h3");
        var abbr=document.createElement("p");
        full.innerHTML=elements[i].getAttribute('title');
        abbr.innerHTML=elements[i].innerHTML;
        document.body.appendChild(abbr);
        document.body.appendChild(full); //既然你本质上是顺序插入, insertBefore毫无意义?
    }
});

function xx()
{var e1=document.getElementsByTagName("abbr");
for(var i=0;i<e1.length;i++)
{var a1=e1[i].getAttribute("title");//应该从函数外面挪进来,并且e1[i]
var t1=e1[i].innerHTML;//应该从函数外面挪进来,并且e1[i]
e2=document.createElement("h3");
e3=document.createElement("p");
e2.innerHTML=t1;//去掉引号
e3.innerHTML=a1;//去掉引号
document.body.appendChild(e3); //必须先安顿好e3,在安顿e2
document.body.insertBefore(e2,e3);
}

}
window.onload=xx;

【热门文章】
【热门文章】