Javascript错误:this.replace($foo,";);
我的第六行代码不起作用。请帮忙Javascript错误:this.replace($foo,";);,javascript,jquery,replace,Javascript,Jquery,Replace,我的第六行代码不起作用。请帮忙 function ajax() { $('a[class="ajax-cw"]').click( function() { $('#cw').load( this + "?ajax" ); $('#nav li.current').removeClass('current'); var $base = $("base").attr("href"), $link = this.repla
function ajax() {
$('a[class="ajax-cw"]').click( function() {
$('#cw').load( this + "?ajax" );
$('#nav li.current').removeClass('current');
var $base = $("base").attr("href"),
$link = this.replace($base, ""); //Line does not work
alert ($link);
return false;
});
};
试试这个:
this.href.replace($base, '');
您需要以分号结束前一行。你用逗号结束了它
var $base = $("base").attr("href");
如果您试图将当前单击链接的href内容的一部分替换为基本对象的href内容,则必须通过
var currenthref = $(this).attr('href');
然后在替换行中使用currenthref
$link = currenthref.replace($base, "");
这个函数的replace函数不能正常工作,因为它不是一个字符串,而是一个对象(最有可能是jquery),它代表了您所单击的链接元素。
第6行中的这个
是
标记,而不是该标记的href$(this).attr('href').replace($base,”)
的性能会更好。提问时请提供更多信息。它会导致错误还是什么都不做?this
、$base
和$link
的值是多少?你在$link
中得到了什么?您希望得到什么?变量可以是逗号分隔值的列表,所以这可能不是问题所在。请尝试console.log($base)
查看您是否实际获得了base元素的href(noone不再使用)。另外,“ntthis
是DOM元素吗,你打算如何替换它,它不是你知道的字符串???你想实现什么?这是什么。替换应该做什么?我想你错了。可以在单个var
表达式中声明多个变量,并用逗号分隔。ok。从来没用过。这引用了超链接对象,在该对象上没有方法替换,但我不清楚您试图实现什么。@PorridgeBear:实际上,在适当的情况下使用逗号分隔多个表达式是非常合适的。“永远不要使用它”并不是这里的正确建议。据我所知,在中引用的JS DOM元素没有方法attr()。尝试围绕它包装一些jQuery。