Javascript Jquery在IE8及以下版本中添加微妙之处
我有以下代码:Javascript Jquery在IE8及以下版本中添加微妙之处,javascript,jquery,internet-explorer-8,Javascript,Jquery,Internet Explorer 8,我有以下代码: var editLink = $('<a href=# class="edit" id="edit">').append('edit') var editLink=$(“”) 但是我有很多嵌套的属性,并且在jQuery的中间不需要一个很长的HTML。< /P> 你知道为什么第一个版本不起作用吗?我找到了答案 只是需要关闭正在创建的元素。即 var editLink = $('<a href=# class="edit" id="edit"></a
var editLink = $('<a href=# class="edit" id="edit">').append('edit')
var editLink=$(“”)
但是我有很多嵌套的属性,并且在jQuery的中间不需要一个很长的HTML。< /P> 你知道为什么第一个版本不起作用吗?
我找到了答案 只是需要关闭正在创建的元素。即var editLink = $('<a href=# class="edit" id="edit"></a>').append('edit');
var editLink=$('').append('edit');
我一直担心这会将文本附加到元素之后,而不是在元素内部,然而,append当然意味着添加到目标元素内部的末尾
因此,这是完美的。对于没有结束标记的字段,例如
<input type=text>
依此类推,您不需要有结束元素。第1版不起作用,因为IE 8有很多随机的怪癖。似乎没有理由,事情就不会发生。另外,您使用的是什么版本的jQuery?我注意到您的href中没有关于
#
的引号。你也可以做$('edit').attr(“href”,“#”).attr(“class”,“edit”).attr(..)我想是吧?这些链式方法可以放在新行上以增加清晰度。@Sumurai8:您甚至可以执行$('',{text:'edit',href:'#',class:'edit',…})
。您可以将一个对象作为第二个参数传递给$()
,它会将它们设置为属性。您可以使用text:
或html:
,具体取决于您在元素中想要什么。@RocketHazmat谢谢。我不知道$
接受了第二个参数。
<input type=text>