2013-03-25 79 views
0

我需要第二个属性添加到我的所谓“服务”,但选择选项时,是否只是“价值”属性设置源的setAttribute不起作用

for(var index = 0; index < list.length; index ++){ 
     elementToBeAdded.options[index + 1] = new Option(list[index].description, list[index].id); 

     elementToBeAdded.options[index + 1].setAttribute("service",list[index].service); 
} 

输出:

<option value="myValue"> 
    my text 
</option> 

预期输出:

<option value="myValue" service="myService"> 
    my text 
</option> 

如何在创建选项时向每个选项添加属性?

最终我需要保存对每个选项的额外的价值,这样我可以用它当一个选项被选中

+0

在控制台中是否出现错误? – 2013-03-25 16:54:18

+0

*“当我只检查源'value'属性设置时* *这是可以预料的,不是?该属性仅在Javascript运行时设置,这在查看源代码时不会发生。 – 2013-03-25 16:55:46

+0

而不是查看源代码,请尝试在某些开发人员工具中检查元素,然后查看它是否存在 – Ronnie 2013-03-25 16:57:06

回答

0

可以使功能对于这种东西的:

function setAttributes(element, attributes) { 
    for(var key in attributes) { 
    element.setAttribute(key, attributes[key]); 
    } 
} 

,并使用此像这样的功能:

setAttributes(option, {"value": "myValue", "service": "myService"}); 
0

“查看源文件”功能的责任在大多数浏览器是显示源作为初始由浏览器读取。因此,通过客户端代码对文档做出的进一步更改不会反映在源代码的查看器中。但是,您可以使用浏览器的DOM检查器(大多数浏览器都有)来分析和查看文档的最新版本。

如果您的目标是确保元素上的属性设置正确,则可以使用yourOption.getAttribute('service')简单尝试检索它的值。