欢迎各界计算机爱好者加入,弘扬极客精神!

想问下用javascript怎么创建ul>li>a

1 喜欢 0 不喜欢

 

<div id="test"></div>

在test这个div中用js写入:

<ul>      <li><a href="####" id="aaa">a</a></li>      <li><a href="####" id="bbb">b</a></li></ul>

我自己用createElement、setAttribute、appendChild之类的弄了半天实在弄不出来,要求要:
原生JS,不能用JQ或其它框架用
不能用innerHTML写入,用DOM插入节点
链接要写入id="aaa"和"bbb
问题关闭原因: 回答已经很多了,希望问题已经得到合理解答。
最新提问 7月 19, 2015 分类:Java | 用户: edwardwangyiming (1,916 分)  
已关闭 8月 14, 2015 用户:月汐

11 个回答

1 喜欢 0 不喜欢
 <div id="test"></div>
<script>
var ul = document.createElement('ul');
var ids = ['aaa','bbb'];//id数组
var hrefs = ['#a','#b'];//链接数组
var vals = ['a','b'];//显示内容数组
for(var i=0;i<2;i++){
    var li = document.createElement('li');
    var a = document.createElement('a');
    a.setAttribute('href',hrefs[i]);
    a.id = ids[i];
    a.innerHTML = vals[i];
    li.appendChild(a);
    ul.appendChild(li);
}
test.appendChild(ul);//test 和 document.getElementById('test') 在这里是一样的 浏览器通用 看自己习惯
</script> 
最新回答 7月 19, 2015 用户: MJ (2,076 分)  
1 喜欢 0 不喜欢
最新回答 7月 20, 2015 用户: harryho97 (4,124 分)  
1 喜欢 0 不喜欢

把li的innerHTML改成带<a>标签的就行了

如果是固定链接直接加进去就行了
obj.innerHTML="<a href=’xgtpjatgmat.t'>"+ab+"</a>";
href可以用参数传过来

改一下方法
function addli(ab,href)
{
var ul=document.getElementById("projecthome");  
var obj=document.createElement("li");  
obj.innerHTML="<a href='"+href+"'>"+ab+"</a>";  
ul.appendChild(obj);  

ab是要显示在链接上的字符串
href就是链接地址。

最新回答 7月 20, 2015 用户: 也是醉鸟 (2,118 分)  
1 喜欢 0 不喜欢
最新回答 7月 20, 2015 用户: 混混分的 (1,690 分)  
0 喜欢 0 不喜欢
var content=document.getElementById("content"); 
var items=content.getElementsByTagName("ul"); 
var itemss=items[2].getElementsByTagName("li");//获取第二个li标签

或 

var div=document.getElementById('a'); 
var ul=div.childNodes.item(0); 
var lis=ul.childNodes; 
for(var i=0;i<lis.length;i++){ 
alert("Item "+i+": "+lis.item(i).innerHTML); 
}  

 

最新回答 7月 21, 2015 用户: Hugo (2,252 分)  
0 喜欢 0 不喜欢
var ul = document.createElement('ul');
var ids = ['aaa','bbb'];//id数组
var hrefs = ['#a','#b'];//链接数组
var vals = ['a','b'];//显示内容数组
for(var i=0;i<2;i++){
    var li = document.createElement('li');
    var a = document.createElement('a');
    a.setAttribute('href',hrefs[i]);
    a.id = ids[i];
    a.innerHTML = vals[i];
    li.appendChild(a);
    ul.appendChild(li);
}
test.appendChild(ul);//test 和 document.getElementById('test') 在这里是一样的 浏览器通用 看自己习惯
</script>
最新回答 7月 27, 2015 用户: 夕一 (2,698 分)  
0 喜欢 0 不喜欢
其实 a.href = hrefs[i];也可以
a.属性 这种是一些标准属性才能用
而setAttribute 是用于所有属性

a.xx写着简单
a.href 的取值是绝对路径
a.getAttribute('href')是相对路径 这个要注意
最新回答 7月 27, 2015 用户: 夕一 (2,698 分)  
0 喜欢 0 不喜欢
a.href = hrefs[i];也可以
a.属性 这种是一些标准属性才能用
而setAttribute 是用于所有属性

a.xx写着简单
a.href 的取值是绝对路径
a.getAttribute('href')是相对路径 这个要注意
最新回答 7月 29, 2015 用户: 夕一 (2,698 分)  
0 喜欢 0 不喜欢
先createElement,接着appendChild就行了。
最新回答 7月 30, 2015 用户: uulake (4,106 分)  
1 喜欢 0 不喜欢
http://segmentfault.com/q/1010000000169168

你看看这个有没有用?
最新回答 8月 2, 2015 用户: 江南晚来客 (1,796 分)  
...