获取selectbox的name属性

Nov*_*ato 0 javascript jquery jquery-selectors

我从来没有使用过name属性,但在MVC看来我必须这样做.

我有

<select name="testname" onChange="Alert()">
<option value="8">Test</option>
</select>
Run Code Online (Sandbox Code Playgroud)

JS

function Alert(){
alert(this.name);
}
Run Code Online (Sandbox Code Playgroud)

结果应该是警报("testname")

它很简单,但我从未使用过,而且很难在谷歌上找到,因为每个人都在询问获取价值或指数:D

Fel*_*ing 5

问题是,由于给你打电话的方式Alert,this指的是window,不给DOM元素.您可以将其作为参数传递给函数:

<select name="testname" onchange="Alert(this)">
Run Code Online (Sandbox Code Playgroud)

function Alert(element){
    alert(element.name);
}
Run Code Online (Sandbox Code Playgroud)

附加事件处理程序比使用HTML属性有更好的方法.我建议在quirksmode.org上阅读有关事件处理各种文章.

还要确保你了解它是如何this工作的.

当然你也可以写

<select name="testname" onchange="alert(this.name)">
Run Code Online (Sandbox Code Playgroud)

如果您使用的是jQuery,那么您应该使用它来绑定事件处理程序.例如:

$('select[name=testname]').change(function() {
    alert(this.name);
});
Run Code Online (Sandbox Code Playgroud)

看看jQuery教程并花时间浏览API文档,这是值得的.