jQuery html函数不能与object作为参数一起使用

时间:2013-07-01 07:27:04

标签: javascript jquery

在我的应用程序中,图片的html保存在itemConfig.picture

如果我将以下代码添加到js:

$('.picture').html(itemConfig.picture);

图片的div仍为空。 但是这个有效:

var tmpVar='<div class="field field-name-field-picture field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://localhost/ae/sites/default/files/DSC_02911_0.jpg" width="130" height="120" alt="" /></div></div></div>'
$('.picture').html(tmpVar);

这些信息很有用:

alert(typeof itemConfig.picture); // returns "String"
alert(itemConfig.picture); // returns <div class="field field-name-field-picture field-type-image field-label-hidden"><div class="field-items"><div class="field-item even"><img typeof="foaf:Image" src="http://localhost/ae/sites/default/files/DSC_02911_0.jpg" width="130" height="120" alt="" /></div></div></div>

为什么传递对象属性不起作用?

2 个答案:

答案 0 :(得分:0)

我认为这对你有用,但这只是猜测。

$('.picture').html(itemConfig.picture.toString());

答案 1 :(得分:0)

您不应该在此Fiddle中看到.toString()

var itemConfig = {};
itemConfig.picture = "<div style='width: 20px; height: 20px; background-color: red'></div>";

$('#start').on('click', function () {
    $('#type').html(typeof itemConfig.picture);
    $('#length').html($('.picture').length);
    $('.picture').html(itemConfig.picture);
});

评论的假设似乎是正确的。您此时或者在dom(picture)中没有包含picture.length = 0类的元素,或者itemConfig.picture的值是其他内容。