我正在开发自己的jQuery插件,对于这个问题,我已经将它剥离到两个相关的行.
在IE 8中,使用下面的代码,$(‘title’).text()不执行任何操作. docTitle为空,因为title为空,就好像< title>,$(‘title’)的jQuery选择器不起作用. (再次,AFAIK,这只是在IE 8中)
(function ($) { $.fn.myPlugin = function (options) { var title = $('title').text(),docTitle = escape(title); }; })(jQuery);
http://jsfiddle.net/sparky672/YMBQ2/
但是,使用下面的纯JavaScript代码,document.title在包括IE 8在内的所有内容中都运行良好…
(function ($) { $.fn.myPlugin = function (options) { var docTitle = escape(document.title); }; })(jQuery);
编辑:
IE 8中的结果与此相同……
$(document).ready(function () { var title = $('title').text(); alert(title); });
只是为了澄清,我并不是坚持使用它.事实上,我通过简单地使用document.title来修复我的插件.如果最初不清楚,我只是问为什么这在IE 8中不起作用.
编辑2:
以下是有关此问题的一些jQuery Bug报告
http://bugs.jquery.com/ticket/7025
http://bugs.jquery.com/ticket/5881
http://bugs.jquery.com/ticket/2755
还有数十个人报告了同样的事情.官方的回应是声明,“document.title是唯一可靠的跨浏览器方式,应该使用”并且票证已关闭.你去吧
解决方法
var title = document.getElementsByTagName('title')[ 0 ]; title.firstChild // This would be the Text-Object with the characterdata of the title // Firefox: [object Text] // IE: null
这应该是你无法使用jQuery.text()获取textContent的原因. title.text似乎是跨浏览器comp.我只在IE 7和Firefox 3.6中测试过它,但是如果你愿意,可以测试you can check the other browser.但为什么不使用document.title?
原文地址:https://www.jb51.cc/jquery/158786.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。