Javascript 在jQuery中创建图像标记不起作用?
index.htmlJavascript 在jQuery中创建图像标记不起作用?,javascript,jquery,html,Javascript,Jquery,Html,index.html <html> <head> <script src="//code.jquery.com/jquery-2.0.0.min.js"></script> <script src="jquery.js"></script> </head> <body> <div id="myDiv" name="myDiv
<html>
<head>
<script src="//code.jquery.com/jquery-2.0.0.min.js"></script>
<script src="jquery.js"></script>
</head>
<body>
<div id="myDiv" name="myDiv" title="Example Div Element">
</div>
</body>
</html>
jquery.js
$.ajax
({
type: "GET",
url: "url",
dataType: 'image/png',
async: false,
beforeSend: function (xhr) {
xhr.withCredentials = true;
xhr.setRequestHeader("Authorization", "Bearer xxx");
},
complete: function (data) {
console.log("yello");
$('#myDiv').html('<img id="target">');
}
});
$.ajax
({
键入:“获取”,
url:“url”,
数据类型:'image/png',
async:false,
发送前:函数(xhr){
xhr.withCredentials=true;
xhr.setRequestHeader(“授权”、“持有人xxx”);
},
完成:功能(数据){
控制台日志(“yello”);
$('#myDiv').html('');
}
});
这个问题很简单
为什么这条线不行<代码>$('#myDiv').html(''代码>
当我检查页面的源代码时,没有显示任何内容,也没有图像标记。我不太明白为什么,因为我确信我做的每件事都是正确的
谢谢 尝试
console.log($('#myDiv').html())
在编写代码并查看控制台中的值后,您将在那里找到图像,但它不会显示在源代码视图中将您的函数包装在:
$(函数()
{
$.ajax
({
键入:“获取”,
url:“url”,
数据类型:'image/png',
async:false,
发送前:函数(xhr){
xhr.withCredentials=true;
xhr.setRequestHeader(“授权”、“持有人xxx”);
},
完成:功能(数据){
控制台日志(“yello”);
$('#myDiv').html('');
}
});
});
这确保在加载DOM后调用ajax方法。如果您发布的javascript是完整的jquery.js文件,那么发生的事情是在浏览器呈现div标记之前运行javascript,因此jquery选择器找不到任何内容,因此您的console.log调用返回未定义
这里是一个验证javascript的快速方法,请注意,我将图像创建包装在一个
$(function(){})中代码>块。这是document.ready(function(){})的jquery速记 试试$('#myDiv').html('Works!')
并查看文本是否出现。标记在哪里?您确定ajax调用正在完成并且成功函数正在命中吗?您是否使用检查器?如果不是,源代码将不会反映动态变化。我正在使用chrome inspector。无论get是否完成(它确实完成),都应该命中函数。尸体标签就在那里,我只是个傻瓜,我现在就把它贴上去。html('Works!)没有显示。正如我评论的那样回答,它工作了!谢谢将尽快检查。我在本地演示了$.ajax({type:“GET”,url:/images/cone.png),dataType:'image/png',async:false,beforeSend:function(xhr){xhr.withCredentials=true;xhr.setRequestHeader(“Authorization”,“Bearer xxx”);},complete:function(数据){console.log(“yello”);$('myDiv').html('');console.log($('myDiv').html());});
$(function()
{
$.ajax
({
type: "GET",
url: "url",
dataType: 'image/png',
async: false,
beforeSend: function (xhr) {
xhr.withCredentials = true;
xhr.setRequestHeader("Authorization", "Bearer xxx");
},
complete: function (data) {
console.log("yello");
$('#myDiv').html('<img id="target">');
}
});
});