Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.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 从变量中删除字符时出错_Javascript_Jquery_String - Fatal编程技术网

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