将内联属性与属性对象混合

时间:2011-07-03 02:53:09

标签: jquery

我应该在这里得到3张图片,但是我得到2.最后一张失败了:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.5.1.js" type="text/javascript"></script>
<script type="text/javascript">
$().ready(function() {
    var img = $('<img src="icon.next.gif" url="/" />');
    $("body").append(img);
    img = $('<img />', { src: "icon.next.gif", url: "/" });
    $("body").append(img);
    var img = $('<img src="icon.next.gif" />', { url: "/" });
    $("body").append(img);
});
</script>
</head>

<body>
</body>
</html>

我可以发誓我之前已将它们混合在一起,但现在似乎第二个参数替换了所有标签。我真的需要它添加,因为我已经生成了一个字符串(它带有内联属性),我需要添加它。

对于任何想玩它的人来说,这是[fiddle]。

使用IE9,它打破了:

  

SCRIPT438:对象不支持   财产或方法   'createDocumentFragment'   jquery-1.5.1.js,第5450行第3期

1 个答案:

答案 0 :(得分:1)

首先,使用$(document).ready(function(){或速记$(function(){

其次,从第三个img中删除url属性,并在图像src之前添加斜杠:

var img = $('<img src="icon.next.gif" url="/" />');
$("body").append(img);
img = $('<img />', { src: "icon.next.gif", url: "/" });
$("body").append(img);
img = $('<img src="/icon.next.gif" />');
$("body").append(img);

只要您从CDN中撤出,就应该在发布调试问题之前尝试获取最新版本的jQuery,因为问题可能已经在jQuery中解决了。

你正在使用1.5.1。 jQuery现在是1.6.2,fyi。

http://jsfiddle.net/x2qSz/2/