Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript错误:this.replace($foo,";);_Javascript_Jquery_Replace - Fatal编程技术网

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不再使用)。另外,“nt
this
是DOM元素吗,你打算如何替换它,它不是你知道的字符串???你想实现什么?这是什么。替换应该做什么?我想你错了。可以在单个
var
表达式中声明多个变量,并用逗号分隔。ok。从来没用过。这引用了超链接对象,在该对象上没有方法替换,但我不清楚您试图实现什么。@PorridgeBear:实际上,在适当的情况下使用逗号分隔多个表达式是非常合适的。“永远不要使用它”并不是这里的正确建议。据我所知,在
中引用的JS DOM元素没有方法attr()。尝试围绕它包装一些jQuery。