javascript中未定义的值

时间:2014-12-30 14:58:35

标签: javascript

我有这个函数从数组中动态创建一个列表

function fill1(arr) {
    var out = "";
    var i;
    for(i = 0; i < arr.length; i++) {
        var a=arr[i].code;
        var b=arr[i].name;
        out += '<li><a href="" onclick="myfunction(this)" id="'+arr[i].code+'" value="'+arr[i].name+'">' + 
        b + '</a></li>';
    }
    document.getElementById("instrumental").innerHTML = out;
}

此警报功能

function myfunction(elem) {
    var x=elem.id;
    var c=document.getElementById(x).value;
    alert(c);
}

当我提醒x时它确定但当我警告c显示未定义

2 个答案:

答案 0 :(得分:1)

而不是在“a”标记上设置“值”属性,而不是有效属性,而是要设置“数据值”属性,如下所示:

out += '<li><a href="" onclick="myfunction(this)" id="'+arr[i].code+'" data-value="'+arr[i].name+'">' + 

这些“data-”属性允许您将自己的属性添加到不影响浏览器呈现方式的元素。

您也不能以您尝试的方式简单地访问DOM元素上的属性,您需要这样做

var c=document.getElementById(x).getAttribute('data-value')

答案 1 :(得分:0)

不是标记的有效属性 a 如果您使用的是HTML,则可以将代码转换为使用数据属性