鉴于此HTML代码:
<td role-id="@Model.Id">
@Model.Name
<div class='glyphicon glyphicon-edit update_user' onclick='UpdateRole()'></div>
</td>
点击div时我需要检索role-id
。
JS代码:
function UpdateRole() {
$("#ModalUser").show();
var role_id = $(this).parent().attr("role-id");
var user_id = $(this).parent().parent().attr("user-id");
console.log(role_id);
console.log(user_id);
};
这两个值均为undefined
,如果没有此值,我该如何获得role-id
?
答案 0 :(得分:2)
更好的方法是使用jQuery
事件绑定,但使用您的方法,从被调用函数传递this
上下文:
问题:在您的示例中,this
不是调用了哪个事件的element
,而是window
!
function UpdateRole(that) {
$("#ModalUser").show();
var role_id = $(that).parent().attr("role-id");
var user_id = $(that).parent().parent().attr("user-id");
console.log(role_id);
console.log(user_id);
};
<td role-id="@Model.Id">
@Model.Name
<div class='glyphicon glyphicon-edit update_user' onclick='UpdateRole(this)'></div>
</td>
使用jQuery
event-binding
:
function UpdateRole() {
$("#ModalUser").show();
var role_id = $(this).parent().attr("role-id");
var user_id = $(this).parent().parent().attr("user-id");
console.log(role_id);
console.log(user_id);
}
$('.update_user').on('click', UpdateRole);
<td role-id="@Model.Id">
@Model.Name
<div class='glyphicon glyphicon-edit update_user' onclick='UpdateRole(this)'></div>
</td>
答案 1 :(得分:1)
您应该使用jQuery注册您的活动,这样可以更容易地找到调用元素:
as.numeric(vect)
#[1] 1.1 NA 2.5 NA 3.0
您现在可以:
$('.update_user').click(UpdateRole);
答案 2 :(得分:-1)
这很简单,你需要更新这一行。 data- *是用于设置和获取数据的html5新属性
$(".update_user").on("click",function(){
elm=$(this).parent().data("role-id");
elm // this element consist of role id, now you can use this variable
});