1

我一直在尝试使用 setAttribute 将选择标签的名称从 oldName 更改为 newName,但是当我加载页面然后查看源代码时,oldName 仍然存在。最终,我想添加一个属性“onchange”、“function();” 但我什至无法让 JS 更改标签的名称。任何帮助,将不胜感激。提前致谢。我在 Mac OS X 上进行了测试:Chrome、FF 和 Safari。

<html>
<head>
</head>
<body>
        <select name="oldName">
        <option value="0">Essay 1</option>
        <option value="1">Essay 2</option>
        <option value="2">Essay 3</option>
        </select>
<script type="text/javascript">
document.getElementsByTagName("select").item(0).setAttribute("name","newName");
</script>
</body>
</html>
4

3 回答 3

4

您的代码有效,名称更改。查看源代码时,您不会看到名称更改。而是在开发工具中查看生成的源代码。F12(在 Chrome 中尝试)。

查看源代码仅显示首次从服务器下载的源代码。使用开发工具,您可以查看页面加载后对 DOM 所做的更改。

于 2011-08-23T19:56:59.827 回答
0

当您“查看源代码”时,您并没有查看页面的 HTML,因为它存在于您面前 - 浏览器专门获取页面的副本以向您显示源代码。这样做时,它不会解释 javascript - 因此您通过 javascript 对文档所做的任何更改都不会反映在“查看源代码”窗口中。

为了实时查看 DOM 的更改,您必须使用 Firebug 等开发工具(链接)。作为 Firefox 扩展当然意味着在 Internet Explorer 中没有运气,这就是为什么开发人员经常以 Firefox 为开发目标,并在一切正常运行后担心 Internet Explorer。

IE 中有 Firebug 的替代工具(如 Firebug Lite),但没有一个接近功能和实用程序。

于 2011-08-23T19:58:46.560 回答
-3

为什么你不使用类呢?像这样:

<script type="text/javascript">
$(function(){
    $('.example').attr('name','new');
});
</script>


<select class="example" name="oldName">
<option value="0">Essay 1</option>
<option value="1">Essay 2</option>
<option value="2">Essay 3</option>
</select>
于 2011-08-23T19:56:30.350 回答