如何使用javascript获取元素的自定义属性值

时间:2013-12-11 23:16:29

标签: javascript html dom

如何从以下获取名称值?

<select id="product">
    <option name="name1" value="1">one</option>
    <option name="name2" value="2">two</option>
</select>

我试过这个(在结尾添加.name。。value工作,.name没有)

var select = document.getElementById("product");
select.onchange = function(){
    var selectedString = select.options[select.selectedIndex].name;
    alert(selectedString);
}

感谢

1 个答案:

答案 0 :(得分:5)

使用getAttribute因为name不是选项的有效属性(因此选项元素没有name属性,当您设置其name属性时,该属性会更新),因此你无法从name属性中获取它(通过访问elm.name)。

var selectedString = this.options[this.selectedIndex].getAttribute('name');

更好的方法是将其设为data-*属性并使用dataset访问它(旧浏览器版本不支持)。

<select name="model" id="model">
    <option data-name="name1" value="1">one</option>
    <option data-name="name2" value="2">two</option>
</select>

this.options[this.selectedIndex].dataset.name; //or this.options[this.selectedIndex].getAttribute('data-name')