如何将jquery数组/对象传递给需要MS Ajax对象的函数

时间:2012-07-13 12:23:10

标签: javascript jquery microsoft-ajax

我有一个很大的项目,在整个项目中仍然存在一些MS ajax函数。我可以使用jquery重写它们,但是现在需要花费很多时间。

但是我们现在使用jquery来实现每个新功能。

看看这个:

    $.each($("a[xonclick]"), function (index, value) {
            EnableButton(value);
        });
    function EnableButton(btn) {
        ...
        var xonclick = btn.getAttribute("xonclick");
        ...
    }

当然我收到了javascript错误:

getAttribute is not a function

我知道我可以使用btn.attr("xonclick");,但这不是我之前提到的选项。

是否有一些jquery函数为jquery对象提供了MS ajax对象?然后我可以使用该对象并将其传递给enableButton函数。

更新:JSFiddle:http://jsfiddle.net/wsYCJ/1/

我希望我解释得很好,你们中的某个人知道解决方案。

谢谢!

1 个答案:

答案 0 :(得分:1)

正如您在评论中所说,$get()是ASP.NET AJAX库的一部分,它返回一个增强的DOM元素(实际上是Sys.UI.DomElement的一个实例)。

另一方面,jQuery的$()函数返回一个包装一个或多个DOM元素的jQuery对象。 jQuery对象不支持getAttribute(),DOM元素支持。

您可以使用get()或索引器语法从jQuery对象获取实际的DOM元素。换句话说,你必须写:

function buttonClicked() {
     getAttr($("#test")[0]);
}

而不是:

function buttonClicked() {
     getAttr($("#test"));
}

您会找到更新的小提琴here