Javascript 使用alert()时未定义变量 我有这个脚本: var prop=document.getElementById('div1').firstChild.getAttribute(“id”); 函数aler() { 警报(道具); }
在脚本标记之外:Javascript 使用alert()时未定义变量 我有这个脚本: var prop=document.getElementById('div1').firstChild.getAttribute(“id”); 函数aler() { 警报(道具); },javascript,Javascript,在脚本标记之外: I have this script: <script> var prop = document.getElementById('div1').firstChild.getAttribute("id"); function aler() { alert(prop); } </script> 一些内容 有人能给我解释一下为什么当我点击按钮时会显示“未定义”吗 更正: 在div中,我拖动了一张图片: <div id="div1">
I have this script:
<script>
var prop = document.getElementById('div1').firstChild.getAttribute("id");
function aler()
{
alert(prop);
}
</script>
一些内容
有人能给我解释一下为什么当我点击按钮时会显示“未定义”吗
更正:
在div中,我拖动了一张图片:
<div id="div1">some content</div>
<button onclick="aler()"></button>
例如。div1的第一个子节点是文本节点。它没有身份证 编辑 至于您的更正,如果生成的HTML看起来像这样,那么第一个子节点仍然是文本节点:
<img id="C" src="C.png" draggable="true" ondragstart="drag(event)" width="91px" height="91px">
因为文本包括制表符、空格和返回。我不确定拖放操作是如何影响这一点的。
document.getElementById('div1')。firstChild
是文本某些内容。当你在上面调用getAttribute(“id”)
时,由于纯文本没有id
,你将得到未定义的,其中有各种各样的“节点”。你的一些内容标记定义了两个节点:一个div
,以及它的第一个(也是唯一的)子节点,包含div
中的文本的节点。Text
节点没有id
。div
元素有一个id
,但是文本节点没有。好的,稍作修改-在拖放操作之后,div中有一个图像:function passName(locationID){el1=document.getElementById('div1').firstChild.getAttribute(“id”);el2=document.getElementById('div2').firstChild.getAttribute(“id”);locationID.innerHTML=el1+”和“+el2;alert(el1);}这是一个函数,而el1和el2的定义与prop变量类似。但当我提醒他们时,会显示一个值。。。很抱歉有这么多的更正-我无法很好地解释。。。
<div id="div1">
<img id="C" etc.>
</div>