在JavaScript中使用父函数

在JavaScript中使用父函数,javascript,jquery,html,Javascript,Jquery,Html,我试图获取一个隐藏输入字段的值,但我一直在获取ar变量的Unfind值。有没有人看到我做错了什么,因为我被卡住了 我使用parent三次来找到正确的div,然后使用findby类名 这是我的HTML: <div class="heading"><span>Sanja Bajic</span><i>+</i></div> <div class="details"> <input type="hidde

我试图获取一个隐藏输入字段的值,但我一直在获取ar变量的Unfind值。有没有人看到我做错了什么,因为我被卡住了

我使用parent三次来找到正确的div,然后使用findby类名

这是我的HTML:

<div class="heading"><span>Sanja Bajic</span><i>+</i></div>
<div class="details">
    <input type="hidden" name="id" class="idValue" value="2" /><ul class="form">
        <li>
            <label>Name:</label><input type="text" class="in-text" /></li>
        <li>
            <label>Hours per week:</label><input type="text" class="in-text" /></li>
    </ul>
    <ul class="form">
        <li>
            <label>Username:</label><input type="text" class="in-text" /></li>
        <li>
            <label>Email:</label><input type="text" class="in-text" /></li>
    </ul>
    <ul class="form last">
        <li>
            <label>Status:</label><span class="radio"><label for="inactive">Inactive:</label><input type="radio" value="1" name="status" id="Radio5" /></span><span class="radio"><label for="active">Active:</label><input type="radio" value="2" name="status" id="Radio6" /></span></li>
        <li>
            <label>Role:</label><span class="radio"><label for="admin">Admin:</label><input type="radio" value="1" name="status" id="Radio7" /></span><span class="radio"><label for="worker">Worker:</label><input type="radio" value="2" name="status" id="Radio8" /></span></li>
    </ul>
    <div class="buttons">
        <div class="inner"><a href="javascript:;" class="btn green">Save</a> <a href="javascript:;" onclick="DeleteMember();" class="btn red">Delete</a> <a href="javascript:;" class="btn orange">Reset Password</a></div>
    </div>
</div>
Sanja-Bajic+
  • 姓名:
  • 每周工作时间:
  • 用户名:
  • 电邮:
  • 状态:非活动:活动:
  • 角色:管理员:工作人员:
这是我单击删除链接时使用的脚本:

<script type="text/javascript">
        function DeleteMember() {
            var ar = $(this).parent().parent().parent().find('.idValue').val();
            $.ajax({
                type: "POST",
                url: 'team-members.aspx/DeleteTeamMember',
                data: JSON.stringify({ "ID": ar }),
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: fnsuccesscallback,
                error: fnerrorcallback,
            });
        }
            function fnsuccesscallback(data) {
                console.log(data);
                window.location.reload();
            }
            function fnerrorcallback(result) {
                console.log(result);
                alert(result.statusText);
            }
    </script>

函数DeleteMember(){
var ar=$(this.parent().parent().parent().find('.idValue').val();
$.ajax({
类型:“POST”,
url:'team members.aspx/DeleteTeamMember',
数据:JSON.stringify({“ID”:ar}),
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:fnsuccescallback,
错误:fnerrorcallback,
});
}
函数fnsuccesscallback(数据){
控制台日志(数据);
window.location.reload();
}
函数fnerrorcallback(结果){
控制台日志(结果);
警报(结果.状态文本);
}
在将值分配给ar变量的过程中,我做错了什么

 onclick="DeleteMember();"
您没有在对象的上下文中调用
deletember
,因此它是在
窗口的上下文中调用的

onclick
函数将在其出现的元素的上下文中调用,您可以显式传递该函数:

 onclick="DeleteMember.call(this);"

不过,最好使用JavaScript绑定事件处理程序

删除onclick属性,并(因为您使用的是jQuery)改为在
上使用

$(selector_that_matches_the_element).on('click', DeleteMember);

还要注意的是,
href=“javascript:;”
是一个明确的标志,表明您应该使用按钮,而不是链接,javascript函数名的约定是,除非它们是构造函数(即打算使用
new
关键字调用),否则它们应该以小写字母开头

您没有在对象的上下文中调用
deletember
,因此它是在
窗口的上下文中调用的

onclick
函数将在其出现的元素的上下文中调用,您可以显式传递该函数:

 onclick="DeleteMember.call(this);"

不过,最好使用JavaScript绑定事件处理程序

删除onclick属性,并(因为您使用的是jQuery)改为在
上使用

$(selector_that_matches_the_element).on('click', DeleteMember);

还要注意的是,
href=“javascript:;”
是一个明确的标志,表明您应该使用按钮,而不是链接,javascript函数名的约定是,除非它们是构造函数(即打算使用
new
关键字调用),否则它们应该以小写字母开头

您没有在对象的上下文中调用
deletember
,因此它是在
窗口的上下文中调用的

onclick
函数将在其出现的元素的上下文中调用,您可以显式传递该函数:

 onclick="DeleteMember.call(this);"

不过,最好使用JavaScript绑定事件处理程序

删除onclick属性,并(因为您使用的是jQuery)改为在
上使用

$(selector_that_matches_the_element).on('click', DeleteMember);

还要注意的是,
href=“javascript:;”
是一个明确的标志,表明您应该使用按钮,而不是链接,javascript函数名的约定是,除非它们是构造函数(即打算使用
new
关键字调用),否则它们应该以小写字母开头

您没有在对象的上下文中调用
deletember
,因此它是在
窗口的上下文中调用的

onclick
函数将在其出现的元素的上下文中调用,您可以显式传递该函数:

 onclick="DeleteMember.call(this);"

不过,最好使用JavaScript绑定事件处理程序

删除onclick属性,并(因为您使用的是jQuery)改为在
上使用

$(selector_that_matches_the_element).on('click', DeleteMember);


还请注意,
href=“javascript:;”
是一个明确的标志,表明您应该使用按钮,而不是链接,javascript函数名的约定是,除非它们是构造函数,否则它们应该以小写字母开头(即打算用
new
关键字调用)

请尝试以下方法:

function DeleteMember(elm)
    {
    var ar = $(elm).parent().parent().parent().find('.idValue').val();

    //...
    }
在您的HTML中:

onclick="DeleteMember(this);"

调用
DeleteMember()
函数时,
实际上指的是
窗口
,而不是被单击的元素,因为您使用
onclick=“deletember();”
调用它

请尝试以下方法:

function DeleteMember(elm)
    {
    var ar = $(elm).parent().parent().parent().find('.idValue').val();

    //...
    }
在您的HTML中:

onclick="DeleteMember(this);"

调用
DeleteMember()
函数时,
实际上指的是
窗口
,而不是被单击的元素,因为您使用
onclick=“deletember();”
调用它

请尝试以下方法:

function DeleteMember(elm)
    {
    var ar = $(elm).parent().parent().parent().find('.idValue').val();

    //...
    }
在您的HTML中:

onclick="DeleteMember(this);"

调用
DeleteMember()
函数时,
实际上指的是
窗口
,而不是被单击的元素,因为您使用
onclick=“deletember();”
调用它

请尝试以下方法:

function DeleteMember(elm)
    {
    var ar = $(elm).parent().parent().parent().find('.idValue').val();

    //...
    }
在您的HTML中:

onclick="DeleteMember(this);"

你的标签毫无意义。至少