在javascript中获取'this'对象而不使用'this'这个词

时间:2012-02-29 12:52:29

标签: javascript

我要做的是获得与点击以下提交按钮相同的结果。

<input id="submit_http:" class="add_submit" type="button" onclick="return dex.forms.form_ajax_submit(this,function(res) { alert('posting failed'); },function(res) { alert('posting success'); });" value="Next" name="submit_http:">

我试图这样做:

$('.NextButton').click(function () {
    dex.forms.form_ajax_submit(document.getElementsByName('submit_http:'),
        function(res) { 
            alert('posting failed');
        }, 
        function(res) { 
            alert('posting success'); 
        });
});

但看起来像document.getElementsByName没有返回相同的结果 作为提交按钮'this' 我该如何解决这个问题?

4 个答案:

答案 0 :(得分:2)

你唯一的错误是使用函数document.getElementsByName,因为它返回一个元素数组(由复数表示)。你需要的是一个元素。

使用以下方法访问数组的第一个元素:

document.getElementsByName('submit_http:')[0]

或使用已推荐且更精确的功能:

document.getElementById('submit_http:')

答案 1 :(得分:1)

document.getElementsByName('submit_http:')将返回具有该名称的元素数组。如果您想要提交提交按钮,则需要使用document.getElementsByName('submit_http:')[0]

答案 2 :(得分:1)

虽然Anthony Grist是正确的,但在您的情况下,由于您的输入已经有id,因此您可以执行document.getElementById('submit_http:')(返回单个元素)。

答案 3 :(得分:0)

一般来说,我们使用“自”变量。在提交之前,请执行以下操作:

var self = this;

然后在回调中使用“self”