无法获取隐藏的标记值

时间:2014-02-24 15:41:37

标签: javascript html hidden

这是我的代码:

<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后没有出现错误,但没有预期的结果!

请帮忙!

6 个答案:

答案 0 :(得分:1)

hiddeninput元素type,而不是p属性:

<input type="hidden" id="2" value="This input should be hidden." />

答案 1 :(得分:0)

这个问题(如果你也试着设置它)是类和ID不应该以(或包括)数字开头。

将您的ID重命名为onetwo,然后相应地更新您的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)

有三个问题:

  1. 没有innerHtml,innerHTML是正确的语法。
  2. 隐藏的“p”没有值,它不是输入字段。使用innerHTML来访问它。
  3. 您的javascript代码在浏览器知道paragraps之前运行,因此当您希望它们被访问时它们不存在。将javascript放在段落之后或在页面加载后运行代码。
  4. 这应该有效:

    <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>