什么';这个jQuery方法有什么问题?

什么';这个jQuery方法有什么问题?,jquery,Jquery,我有这个方法: function replaceRightClickIcefacesMethod() { var oldName = jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu"); oldName = oldName.replace('Ice.Menu.contextMenuPopup', 'contextMenuPopupUpdated'); jQuery(".singlePaneOfGlassBloc

我有这个方法:

function replaceRightClickIcefacesMethod() {
    var oldName = jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu");
    oldName = oldName.replace('Ice.Menu.contextMenuPopup', 'contextMenuPopupUpdated');

    jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu", oldName);
}
我不明白为什么Firebug报告:

你看到什么问题了吗?对我来说这很奇怪

更新:请注意,如果我发出警报(oldName),oldName将返回一个函数:


}是否可以删除第三行中的分配?Replace可以返回被替换的条目数

function replaceRightClickIcefacesMethod(){
  var oldName = jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu");
  oldName.replace('Ice.Menu.contextMenuPopup','contextMenuPopupUpdated');

  jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu",oldName);

}

在jQuery1.6之前,
jQuery(“.singlePaneOfGlassBlock”).attr(“oncontextmenu”)
返回函数,因为它返回DOM元素的属性,而不是属性()

这在jQuery1.6()中得到了修复

如果无法使用jQuery 1.6,则必须调用DOM元素:

var oldName = jQuery(".singlePaneOfGlassBlock")[0].getAttribute('onclick');

检查
oldName
是否为
null

初始化后oldName包含什么?
replace
未就位。它返回一个新字符串。但无论如何,错误是oldName.replace不是一个函数,这意味着
replace
首先不存在。
function replaceRightClickIcefacesMethod(){
  var oldName = jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu");
  oldName.replace('Ice.Menu.contextMenuPopup','contextMenuPopupUpdated');

  jQuery(".singlePaneOfGlassBlock").attr("oncontextmenu",oldName);

}
var oldName = jQuery(".singlePaneOfGlassBlock")[0].getAttribute('onclick');