Javascript 从变量中删除字符时出错
请就语法上的更改提供建议Javascript 从变量中删除字符时出错,javascript,jquery,string,Javascript,Jquery,String,请就语法上的更改提供建议 $(document).ready(function(){ //click on nav $('#nav li a').click(function() { //set variable var targetDiv = $(this).attr('href'); v
$(document).ready(function(){
//click on nav
$('#nav li a').click(function() {
//set variable
var targetDiv = $(this).attr('href');
var targetPic = $(this).attr('href');
//remove # from var
targetPic = str.replace('#', '');
//hide !=var
$('div').not( + targetDiv) .hide('puff', 1000);
$('div').not('.' + targetPic) .hide('puff', 1000);
//show =var
$('div' + targetDiv) .show('puff', 1000);
$('div.' + targetPic) .show('puff', 1000);
})
});
应该是
targetPic = targetPic.replace('#', '');
str
imho
在浏览器中,
$(this.attr('href')
返回完整的绝对url(thiat包括http://......#
)对于@Caspar Kleijne的回答,我想补充一点,我发现您的代码中还有另一个错误:
$('div').not( + targetDiv) .hide('puff', 1000);
应该是
$('div').not('#' + targetDiv) .hide('puff', 1000);
你能问个问题吗,不仅仅是代码?我对问题部分表示歉意。我应该这样写:这是处理从锚点捕获href属性、将其存储在变量中、修改变量以排除#以便将其用作类选择器的正确方法吗?关于你最后关于IE的评论,我不确定是否正确。jQuery将只返回“href”属性的内容,这只是html包含的内容,对吗?我不太确定。。。我们在jQuery 1.4和IE6中遇到了一些问题,但可能已经解决了…/如果href在所有浏览器中都不能正确返回,我将使用另一个选择器。谢谢你的提醒。我假设,因为我的锚指向div而不是外部链接,这就足够了。您的更正是我的初始代码,只是变量返回#divname,所以连接另一个#将导致#divname。@jquery101在这种情况下,您应该在
targetDiv
之前删除+
$('div').not('#' + targetDiv) .hide('puff', 1000);