尝试添加嵌套div时,Jquery .append()/。html()无法在本机移动浏览器上运行

时间:2012-12-31 18:41:08

标签: jquery html mobile append

我在本机Android浏览器和黑莓浏览器上遇到了一个非常奇怪的问题。我只是有一个id为“jobStream”的div,并希望将html附加到它。

HTML:

<div id="jobStream"></div>

的JavaScript“

$("#jobStream").append("<div>test</div>");

奇怪的是,如果我这样做:

$("#jobStream").append("test");

它运行正常,但是使用append创建嵌套div似乎会导致问题。我尝试使用.html()和.after(),我也看到了同样的问题。即$(“#jobStream”)。html(“test”)有效,但是$(“#jobStream”)。append(“test”)没有。

再次:这只是在某些移动浏览器上工作(本机android浏览器4.1.1和我测试过的黑莓浏览器)。

任何想法为什么?

4 个答案:

答案 0 :(得分:3)

好的,时间过去了,但也许有人还在试图解决这个问题(就像我找到答案一样)。

根据this blog你需要重新绘制父块元素,在这种情况下你可以

$('#jobStream').hide();
$('#jobStream').get(0).offsetHeight;
$('#jobStream').show();

..在append()之后,所以重新绘制了新添加的元素。

答案 1 :(得分:0)

不确定。可能是你试图传递一个无效的DOM对象

也许尝试类似的事情;

$("#jobStream").append($("<div>test</div>"));   // <- html string wrapped in $()

$('<div/>').html('test').appendTo('#jobStream');

答案 2 :(得分:0)

你尝试过这样的事吗?

$("<div></div>").append($("#test")).html();

$("#container").html($("#container").html() + html);

答案 3 :(得分:0)

事实证明,javascript需要包含在外部js文件中并包含在内而不是内联编码。荒谬的问题但幸好现在解决了。