我有这个函数从数组中动态创建一个列表
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显示未定义
时答案 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,则可以将代码转换为使用数据属性