如何使用$(this)访问调用Javascript函数的按钮的id
How to access the id of the button who called a Javascript function using $(this)?
我是Javascript新手。我在一个页面上设置了几个按钮,像这样:
<div id='MID_1_4'>
<div id="login">logout</div>
<button type="button" id="logout" onclick="loadXMLDoc2()">Logout</button>
</div>
...
我想提取调用loadXMLDoc2()
的按钮的id。这个方法定义如下:
function loadXMLDoc2() {
var retr = $(this).attr("id");
document.getElementById("L1_LEFT").innerHTML
= retr;
}
然而,当我点击按钮时,L1_LEFT
被设置为undefined
。我认为$(this)
意味着"当前的HTML元素"。如果不是按钮,那是什么?如何提取按钮的id?
this
指的是函数内部的window
(全局对象),this
指的是onclick
处理器中的element
。
虽然在html中做javascript是不好的方法,试试这个:
<div id='MID_1_4'>
<div id="login">logout</div>
<button type="button" id="logout" onclick="loadXMLDoc2(this)">Logout</button>
</div>
function loadXMLDoc2(elm) {
var retr = elm.id;
document.getElementById("L1_LEFT").innerHTML
= retr;
}
更好的方法是将HTML和javascript分开:
<div id='MID_1_4'>
<div id="login">logout</div>
<button type="button" id="logout">Logout</button>
</div>
(在js文件的某处)
function loadXMLDoc2(elm) {
var retr = elm.id;
document.getElementById("L1_LEFT").innerHTML = retr;
}
$( document ).ready( function(){
//This function is executed after all elements on the page are ready to be manipulated
$( "#logout" ).bind( "click",
function(){
loadXMLDoc2( this );
}
);
});
是的,this变量指的是事件处理程序的目标元素。不过,我认为你把它弄得太复杂了。试着
var retr = this.id;
获取您的id。吻! !
相关文章:
- 从函数JavaScript返回不可变数组/对象
- 将对象传递给函数.JavaScript
- 如何定义const函数javascript(语法糖)
- 新的日期函数javascript
- TypeError:this.getAttribute不是一个函数-javascript
- 从函数javascript发送变量
- 扩展自容器函数Javascript
- 从内部函数javascript内部分配外部函数的对象
- 使用函数JavaScript中的函数
- 在这里使用回调函数(JavaScript)有什么好处吗
- 来自函数 Javascript 的 NaN 返回值 ||函数执行顺序
- 将“e”传递给一个新函数 - javascript
- 调用函数中的一个函数——Javascript
- 传递的变量不适用于我的函数-Javascript
- 如何将类方法设置为等于多个函数?-Javascript
- 显示php中的函数javascript
- 如何使用php代码创建函数Javascript弹出框
- 未调用的外部函数-javascript
- 如何在类中运行函数.Javascript
- 关闭mouseover上的一个函数——Javascript,jQuery