Javascript 在dom node.children中找不到段落元素。和node.childNodes

Javascript 在dom node.children中找不到段落元素。和node.childNodes,javascript,html,css,Javascript,Html,Css,我有一个要求,即无论何时集中,建议消息都必须显示在输入元素附近。这就是我所做的 输入元素、相应的标签和包含建议消息的段落被包装到父段落元素中。 维护两个类,一个显示属性为隐藏,另一个显示属性为块。 为所有此类输入添加两个侦听器focusin和focusout,以便在这些类之间切换。 问题是: 无法在ChildNode或父段落的子段落中选择包含建议消息的段落 示例代码:html <p> <label for='email'> email: </label>

我有一个要求,即无论何时集中,建议消息都必须显示在输入元素附近。这就是我所做的

输入元素、相应的标签和包含建议消息的段落被包装到父段落元素中。 维护两个类,一个显示属性为隐藏,另一个显示属性为块。 为所有此类输入添加两个侦听器focusin和focusout,以便在这些类之间切换。 问题是: 无法在ChildNode或父段落的子段落中选择包含建议消息的段落

示例代码:html

<p> <label for='email'> email: </label>
                <input type='email' id='email' required pattern='^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$'placeholder='123@example.com'> </input>
                <p class='input-message-hidden'> enter your email address here. </p>
            </p>
javascript或js:

function focussed_in(event){
    targ = event.target;
    siblings = targ.parentNode.children;
    for(var i = 0 ; i< siblings.length; i++){
        alert(siblings[i]);
    }
}
我添加了警报以了解发生了什么。你会收到2个警报。。。1个用于标签,另一个用于输入,P标签不含任何内容。。
感谢您的帮助。

您不能将p作为p的子对象,因此浏览器可能会将p作为兄弟对象作为错误更正的一部分。将消息元素更改为范围。此外,没有显示:隐藏,有显示:无或可见性:隐藏。在这种情况下,第二个可能更好。@RobG I维护display:none。。我写问题的时候弄错了。。为什么可见性是一个好的选择呢?我的意思是,这给这个信息留下了一点空白。显示的想法不是更好吗?正在提醒span元素。。多谢各位