jQuery.html()正常工作,但JavaScript.innerHTML不工作
我无法找到jQuery.html()正常工作,但JavaScript.innerHTML不工作,javascript,jquery,Javascript,Jquery,我无法找到$('#valvonta_d').html(数据)的原因正在工作,但valvonta_div.innerHTML=data根本不起作用 我有一些JavaScript/jQuery代码: $(document).ready(function(){ valvonta = function() { var kaavio = 106; jQuery.post("hae_tilanteet.php", { kaavio: kaavio }).done(f
$('#valvonta_d').html(数据)的原因代码>正在工作,但valvonta_div.innerHTML=data代码>根本不起作用
我有一些JavaScript/jQuery代码:
$(document).ready(function(){
valvonta = function() {
var kaavio = 106;
jQuery.post("hae_tilanteet.php", {
kaavio: kaavio
}).done(function(data) {
// the following would work, but I prefer using JavaScript:
// $('#valvonta_d').html(data);
// this is not working
var valvonta_div = document.getElementById('valvonta_d');
valvonta_div.innerHTML = data;
});
};
setTimeout(valvonta, 6000);
};
我有以下HTML代码:
<div id="valvonta_d"></div>
变量数据的值为…
元素通过innerHTML
插入,因为它可能允许跨站点脚本
您必须通过在单独的步骤中检索它们的内容来评估它们
}).done(function(data) {
var valvonta_div = document.getElementById('valvonta_d');
valvonta_div.innerHTML = data;
Array.from(valvonta_div.querySelectorAll('script')).forEach(function (script) {
if (script.getAttribute('src')) return;
// `(0, ...)` for global eval via indirect reference
(0, eval)(script.textContent || '');
});
});
但是,如果可以,请尽量避免使用eval()
至少在一般情况下,您应该能够将
的通用形式定义为函数
,包括在此之前的页面中
function prepareVolvanta(kaavio, container) {
// ...
}
然后,在内容准备就绪时调用该函数
var valvonta_div = document.getElementById('valvonta_d');
valvonta_div.innerHTML = data; // content markup only
prepareVolvanta(kaavio, valvonta_div);
相关:控制台中有错误吗?什么是“不工作”意思?你到底在附加什么?您显示的代码中没有问题……而且您没有调用valvonta
函数,因此两者都不应该工作。你把代码放在那里有什么原因吗?@squint我添加了最后一行。@xms在我们能够直接帮助你之前,你必须详细说明你的文章,而不只是猜测。说“不行”根本不够详细。可能性太多了。所以这两个结果到底有什么不同?不同的外表?不同的行为?您能否将hae_tilanteet.php提供的内容作为数据提供或至少汇总为数据
?我应该如何声明valvonta_div?如果我添加setTimeout(valvonta,6000)代码>到.done(函数(数据)的内部
使用您的代码时,它不再工作。否则,您的代码工作正常。我没有建议您移动设置超时
。另一个用户先前的回答提出了类似的建议,尽管不完全是这样。我修改了我的开场白,现在您明白我的意思了。@xms首先,请不要编辑您的问题n在某种程度上故意破坏了代码段中的代码。注释就足够了。-我理解你的意思,但我认为你可能把我的回答与另一篇由不同用户编写和删除的帖子混淆了。在这些注释之前,我没有提到setTimeout()
,也没有建议将其移动到任何地方。