Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
307 views
in Technique[技术] by (71.8m points)

js获取数组中的值显示[object HTMLInputElement]?

我想获取出数组中的值然后显示出来,但是获取出的值显示为[object HTMLInputElement],

function show(dataList) {
    var uls = document.getElementById('showUl');
    var text = '';
    for (var i = 0; i < dataList.length; i++) {
        text += '<li>' + dataList[i] + '</li>';
    }
    uls.innerHTML = text;
}

显示信息为[object HTMLInputElement]


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

你传进来的是一个dom对象组成的数组,显然,直接用文字拼接的方式对js对象来说不是这么友好

...
text += '<li>' + dataList[i] + '</li>'; // 这里实际操作是dataList[i].toString();
...

你在控制台输出一下就明白了
正确做法: 既然你已经拿到了dom对象,而且js也支持操作dom

function show(dataList) {
    var uls = document.getElementById('showUl'),
        li;
    for (var i = 0; i < dataList.length; i++) {
        // 相当于你创建了一个li,注意这里创建必须放进for循环中,保证每次生成一个新的元素
        li = document.createElement('li');
        // 接下来想li中添加你需要的内容,如果是字符串的话会默认添加一个文本节点的
        li.appendChild(dataList[i]);
        // 接下来把组合好的部件放入uls中
        uls.appendChild(li);
    }
}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.8k users

...