IE6/7/8不支持jQuery创建非闭合格式的链接A

代码如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="jquery-1.6.4.js"></script>
</head>
<body>
	<div></div>
	<script>
	    var $a = $(‘<a href="javascript;">‘).text(‘sina‘)
	    $(‘div‘).append($a)
	</script>
</body>
</html>

使用 $(‘<a href="javascript;">‘) 方式创建一个jQuery对象,然后添加到div里,Firefox/Chrome/Safari/Opera/IE9+都能看见添加的链接a。唯独IE6,7,8里不行。

开始以为是1.6.4版本的bug(坚信这样的写法没问题),后换1.7.0,1.7.2,1.8.0,1.8.3,1.9.1,1.11.1都如此,才大吃一惊。

给a闭合一下即可以

var $a = $(‘<a href="javascript:;"></a>‘).text(‘sina‘)

或者

var $a = $(‘<a>‘)
$a.attr(‘href‘, ‘javascript:;‘)
$a.text(‘sina‘)

也没问题。

查看文档,有如下解释

看完才知道,非jQuery bug,是自己使用不当,闭合标签一定要闭合,非闭合的单标签(input, img)可以不闭合。一直以为万能的jQuery()构造器能兼容各种低劣写法,须注意!

时间: 2024-10-14 11:37:29

IE6/7/8不支持jQuery创建非闭合格式的链接A的相关文章

IE6和IE7是否支持setAttribute()函数

IE6和IE7是否支持setAttribute()函数:setAttribute()函数可以设置对象的属性,如果不存在此属性,则会创建此属性.语法结构: el.setAttribute(name,value) 参数列表: 参数 描述 name 必需.规定要设置的属性名. value 必需.规定要设置的属性值. 代码实例: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <m

IE(IE6/IE7/IE8)支持HTML5标签--20150216

让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件.Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求. 方式一:引用google的html5.js文件,代码内容可以自己下载下来看. <!–[if lt IE9]> <script src="http://html5shiv.googleco

IE8不支持jQuery问题

最近做WordPress主题,遇到一个很奇怪的问题,网页在Chrome等浏览器都显示正常,但是到了IE8里面就无法工作.提示"加载完毕,但网页中有错误". 尝试修复IE浏览器,但是毫无效果.后来经过反复排查,发现问题在于IE8不能运行jQuery.网上找了很久也没找到相关的文章.而且之前用过一些jQuery插件,在IE中也是能正常使用的.用IE打开之前写的一个jQuery插件的Demo,运行正常,又在想是不是CDN的原因,于是把CDN引用的jQuery换成本地的jQuery文件,还是没

iOS 10.3 APFS 不支持大部分的非英文字符解决方案

背景 最近开发辞书软件的时发现离线包音频无法在iOS 10.3进行播放,经过调查发现是iOS 10.3使用了苹果的新文件系统APFS,而APFS不支持大部分的非英文字符类似(zi? ca?n xi?ng hui?).导致SSZipArchive无法解压出带音标的文件.而在整个解压过程中程序没有任何异常.最后确定问题是iOS 10.3 使用的APFS系统上fopen()无法打开带音标的文件名,且整个过程没有任何错误信息和异常警告. 官方介绍 APFS is currently unusable w

IE6\7\8不支持html5新标签

html5大行其道的时代已经到来.如果你还在等待浏览器兼容,说明你已经与web脱节几条街了.当然,这得益于移动客户端的蓬勃发展.如果还在纠结于,是否应该掌握html5和css3技术时,请狠狠的抽自己几个嘴巴,然后,苦学吧!因为前端的春天已经到来,而且不止一个春天.如果你不信,我只能说:爱信不信!下面我们来看一个标准的html5标签结构:(我这里只是说标签,其它概不涉及) 复制代码 代码如下: <!DOCTYPE HTML> <html> <head> <meta

IE(IE6/IE7/IE8)支持HTML5标签

让IE(ie6/ie7/ie8)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件.Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会存在http请求. <!–[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"><

IE6/7中不支持inline-block,如何解决

1.IE6/7不识别inline-block,只是触发了layout,表现跟真实一样.2.IE6/7不完全支持inline-block,只对内联元素有效. IE下块元素如何实现 display:inline-block 的效果?有两种方法:1.先使用 display:inline-block 属性触发块元素,然后再定义 display:inline,让块元素呈递为内联对象(两个display 要先后放在两个 CSS 声明中才有效果,这是 IE 的一个经典 bug ,如果先定义了 display:

Eclipse安装插件支持jQuery,Js智能提示

最近工作中用到jQuery插件,需要安装eclipse插件才能支持jQuery智能提示,在网上搜索了一下,常用的有三个插件支持jQuery的智能提示:1.jQueryWTP2.Spket3.Aptana 在安装插件之前需要先安装eclipse,如果已经安装了eclipse,可以直接看下面的插件安装方法,本人使用的Fedora 12,操作如下:1.直接打开”应用程序”-->”系统工具”-->”终端”2.输入命令”su”,这个命令是临时切换到root用户3.输入root用户的密码4.输入命令”yu

让浏览器支持 jquery ajax load 前进、后退 功能

BEGIN; 一般在做 ajax load 的时候,很多人都不会考虑到需要浏览器支持前进后退功能,因为大部分人都不知道可以实现. 最近遇到这个问题,经过一小段研究,发现github已经有现成的开源工具使用,主要实现原理是利用html的锚点,即<a href="#xxx">,详情可查看https://github.com/balupton/jquery-history/tree/master 主要demo代码如下: html <ul> <li><