这是我的代码:
<html>
<head>
<script type="text/javascript">
var x= document.getElementById("2").value;
document.getElementById("1").innerHtml = x;
</script>
</head>
<body>
<p hidden="hidden" id="2">This paragraph should be hidden.</p>
<p>This is a visible paragraph.</p>
<p><b>Note:</b> The hidden attribute is not supported in IE.</p>
<p id="1"></p>
</body>
</html>
在这段代码中我有一个隐藏的标签,你可以看到。我希望javascript代码读取标识为p
的{{1}}标记的文本值,然后将相同的值打印到2
标记<p>
。但这不起作用。早些时候我甚至试图使用id="1"
但这也不起作用,当我在谷歌开发者工具中检查时,它显示如下错误:
无法读取null的属性'value / nodeValue'
请注意:
经过快速实验后,我注意到添加事件处理程序nodeValue
后没有出现错误,但没有预期的结果!
请帮忙!
答案 0 :(得分:1)
hidden
是input
元素type
,而不是p
属性:
<input type="hidden" id="2" value="This input should be hidden." />
答案 1 :(得分:0)
这个问题(如果你也试着设置它)是类和ID不应该以(或包括)数字开头。
将您的ID重命名为one
和two
,然后相应地更新您的JavaScript。
e.g
<p id="one">Some stuff</p>
同样hidden
不能与p
元素一起使用,因为它只适用于inputs
。
最好在display:none;
中使用CSS
。
如果您需要通过css
作为号码进行访问,则可以使用
[id='1']{
/*code*/
}
但你的javascript仍然无法使用。
正如詹姆斯指出的那样,使用ID
的数字在HTML5
中完全有效。
答案 2 :(得分:0)
请勿使用ID作为数字。
尝试<p id="hello"></p>
答案 3 :(得分:0)
我认为您需要更改标记,然后可以使用.hidden设置CSS类{display:none; }。
将Javascript包装在一个函数中,并在需要时调用它或返回
同样如Maaz所说,尽量不要在你的身份证中使用数字。
答案 4 :(得分:0)
var hiddenValue = document.getElementById('2').innerHTML;
document.getElementById('1').innerHTML = hiddenValue;
答案 5 :(得分:0)
有三个问题:
这应该有效:
<html>
<head>
</head>
<body>
<p hidden="hidden" id="2">This paragraph should be hidden.</p>
<p>This is a visible paragraph.</p>
<p><b>Note:</b> The hidden attribute is not supported in IE.</p>
<p id="1"></p>
<script type="text/javascript">
var x= document.getElementById("2").innerHTML;
document.getElementById("1").innerHTML = x;
</script>
</body>
</html>