jquery 路径名和语法
为了使用ajax加载页面,我的脚本文件中有以下内容:
$(".ajaxed").live("click", function(event) {
var post_slug = $(this)[0].pathname.substring(1);
alert(post_slug);
$.address.crawlable(true).value(post_slug);
$("#board").load("ajax/",{slug:post_slug});
return false;
});
当用户单击链接到http的锚点时://www.website.com/link1 post_slug 警报是 link1。但是当我在 IE8 中使用它时,post_slug 警报是 ink1 而不是 link1。我做错了什么?
我猜它是 .substring(1) 但我能做什么?
In order to load a page with ajax I have the following in my script file:
$(".ajaxed").live("click", function(event) {
var post_slug = $(this)[0].pathname.substring(1);
alert(post_slug);
$.address.crawlable(true).value(post_slug);
$("#board").load("ajax/",{slug:post_slug});
return false;
});
When the user clicks on an anchor linking to http://www.website.com/link1 the post_slug alert is link1. But when I use this in IE8 the post_slug alert is ink1 instead of link1. What am I doing wrong ?
I guess it's .substring(1) but what can I do?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以使用这个:
在 IE7、Chrome 上测试: http://jsfiddle.net/mrchief/vB2Fu/3 /
您可以通过使用正则表达式仅替换起始斜杠来使替换更加小心
更新:
对于嵌套的 slugs,我对其进行了一些更改:
演示(在IE7、Chrome):http://jsfiddle.net/mrchief/vB2Fu/5/
You can use this:
Tested on IE7, Chrome: http://jsfiddle.net/mrchief/vB2Fu/3/
You can make the replace bit more careful by using regex to replace only the starting slash
Update:
For nested slugs, I changed it a bit:
Demo (tested on IE7, Chrome): http://jsfiddle.net/mrchief/vB2Fu/5/
substring(1) 表示从第二个字符开始。子字符串(从,到)。所以 IE 不会返回最初的“/”。
substring(1) means to start at the 2nd character. substring(from,to). So IE is not returning the initial "/".
您的问题是 IE 返回不同的
pathname
值(没有前导/
)。您可以对其进行测试并相应地使用/省略
substring
或获取整个 URL 并使用split
Your problem is that IE returns a different value for
pathname
(without the leading/
).You can either test for it and use/omit
substring
accordingly or get the whole URL and usesplit
可以测试一下
could test for it