0

我有一个大项目,其中仍然存在一些在整个项目中使用的 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/

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

谢谢!

4

1 回答 1

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"));
}

你会在这里找到一个更新的小提琴。

于 2012-07-13T13:20:27.957 回答