尝试添加嵌套div时,Jquery.append()/.html()在本机移动浏览器上不起作用

尝试添加嵌套div时,Jquery.append()/.html()在本机移动浏览器上不起作用,jquery,html,mobile,append,Jquery,Html,Mobile,Append,我在原生android浏览器和黑莓浏览器上遇到了一个非常奇怪的问题。我只是有一个id为“jobStream”的div,并希望向其附加html HTML: 它工作得很好,但是使用append创建嵌套的div似乎会引起问题。我也尝试了.html()和.after(),我发现了同样的问题。例如,$(“#作业流”).html(“测试”)可以工作,但$(“#作业流”).append(“测试”)不能 再次声明:这只适用于某些移动浏览器(我测试过的原生android浏览器4.1.1和黑莓浏览器) 知道为什么吗

我在原生android浏览器和黑莓浏览器上遇到了一个非常奇怪的问题。我只是有一个id为“jobStream”的div,并希望向其附加html

HTML:

它工作得很好,但是使用append创建嵌套的div似乎会引起问题。我也尝试了.html()和.after(),我发现了同样的问题。例如,$(“#作业流”).html(“测试”)可以工作,但$(“#作业流”).append(“测试”)不能

再次声明:这只适用于某些移动浏览器(我测试过的原生android浏览器4.1.1和黑莓浏览器)


知道为什么吗?

不知道。可能是您试图传递一个无效的DOM对象

也许可以试试这样的东西

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

$(“#作业流”)。追加($((“测试”);// 你试过这样的东西吗

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

事实证明,javascript需要包含在外部js文件中,并包含在其中,而不是内联编码。可笑的问题,但谢天谢地,现在终于解决了。

好吧,时间已经过去了,但也许有人还在试图解决这个问题(就像我在找到答案之前所做的那样)

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

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

..在append()之后,因此新添加的元素将被重新绘制。

我没有硬件来测试它,但是您可以尝试将div字符串分配给变量并将其追加吗?(值得一试)你有没有试过只使用document.createElement()我也有同样的问题:(追加一个字符串是有效的,但是如果我尝试
append()
一个元素,它就是不起作用。我的脚本在一个外部JS文件中。还有其他想法吗?我在外部执行,但无法正常工作:(为我工作的一个div我试图
prepend()
,但它没有出现在我的Android浏览器中(在我最新的Nexus 4上运行我的股票浏览器,它是Chrome for Android)。这是愚蠢的,应该纠正。也许这与性能有关,而不是绘制元素不断节省计算能力?你可能会发现,这可能是某种性能相关的度量,只在移动浏览器或类似的东西上实现。但当你添加一个新元素时,它将是n需要在某个时候进行绘制!它并没有为我解决问题。但是,如果你在移动浏览器上单击“桌面网站”选项,这绝对不是问题。肯定与性能有关
$("#jobStream").append($("<div>test</div>"));   // <- html string wrapped in $()
$('<div/>').html('test').appendTo('#jobStream');
$("<div></div>").append($("#test")).html();
$("#container").html($("#container").html() + html);
$('#jobStream').hide();
$('#jobStream').get(0).offsetHeight;
$('#jobStream').show();