使用JavaScript更改HTML名称属性

7

当按下一个 div (我已经用其他代码将其转换为 button) 时,我想要执行以下代码:

<div id="w1" name="w1-0" onclick="weekclick(id)">1<br /></div>

...对于名称从name="w1-0"更改为name="w1-1"

我正在使用以下JavaScript:

function weekclick(id)
{    
 document.getElementById(id).input.name = "w1-1";
}

当我alert id 的name 属性时,它显示未定义。该怎么办?


5
Div 元素没有 name 属性,而 DivElementNode 对象也没有 input 属性。Div 元素被设计成通用容器,如果需要一个按钮,请使用 <button> 元素。 - Quentin
name 属性有什么用途?它在页面上的作用是什么? - Jared Farrish
@JaredFarrish 它用于通过表单的GET或POST方法(格式为name=value)向服务器传递值。 - Rodrigo
2个回答

22

请看下面的代码:

<div id="w1" name='w1-0' onclick="weekclick(id)">1<br /></div>
<div onclick="weekclick('w1');">click me</div><script type="text/javascript">
function weekclick(id) {    
    document.getElementById(id).setAttribute("name","w1-1");
}​
</script>

示例链接 - http://jsfiddle.net/TH9C2/

(从示例中删除弹出警告行 - 它只是为了向您展示它的工作原理)


1
"附上CodePen链接",为什么不使用"请参见下面的代码(附带CodePen链接)"? - Jared Farrish
1
改变了答案 - 现在满意了吗? :) - Yaron U.

2

首先,在HTML中将您的调用更改为this.id而不仅仅是id:

<div id="w1" name='w1-0' onclick="weekclick(this.id)">1<br /></div>

那么请将你的js代码更改为以下形式(删除.input并使用setAttribute):
function weekclick(id) {    
    document.getElementById(id).setAttribute('name', 'w1-1');
}

编辑 或者你可以将你的html中的调用更改为这样:

weekclick(this)

你的js函数必须像这样:

你的js函数必须像这样:

function weekclick(domElement) {    
    domElement.setAttribute('name', 'w1-1');
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接