2011-06-09 37 views
-1

我有隐藏的领域不成为DOM的一部分尴尬问题的问题;至少我找不到使用JavaScript。 Field具有“id”和“name”属性,它的形式是,具有一个值,并且可以在浏览器中查看视图源时看到。所以,我将一个Click处理程序附加到一个按钮上,该按钮使用document.getElementById或使用jquery选择器(选择器的任意组合,通过类名称等)查找隐藏字段,并且它不是DOM的一部分。这怎么可能,甚至可能呢?这可能是什么原因?DOM中缺少隐藏的输入字段?

编辑: 标记是巨大的,所以我不想粘贴在这里。我的问题基本上是否可以隐藏DOM中的隐藏字段。为什么人们对此投票不起作用?这不是一个有效的问题吗?

+4

请分享标记。破碎的标记当然可能是一个原因。 – Niklas 2011-06-09 18:08:42

+0

拼写有误吗?错字?标签缺失的一部分?不正确的语法?它是否通过[验证](http://validator.w3.org/)?所有只是猜测没有看到你的任何实际的代码。 – Sparky 2011-06-09 18:11:25

+0

标记和Javascript肯定会有所帮助。我们可以给你的任何东西只是猜想。 – 2011-06-09 18:12:04

回答

0

也许该字段已被删除,浏览器viewsource不关心DOM的变化(这只是他从服务器获得的响应)。
使用例如firebugs HTML-tab检查当前的DOM。

+0

啊哈,你猜对了,有东西在删除隐藏的字段,我只是确认了它,一页有,而另一页没有。 – epitka 2011-06-09 18:27:06

0

如果您的JavaScript代码按原样运行,即不在DOM就绪事件内,但是与文档的正常流程相同,则可能发生这种情况。如果您的JavaScript代码位于声明此隐藏字段的html上方,那么浏览器将在它有机会创建元素之前执行javascript。您可以在视图源中看到它,因为那时浏览器已经呈现了所有内容。

所以我盲目的猜测是你的js代码不在DOM ready事件中。我很可能是错的。请发布尽可能少的html标记和CSS以及将会重现此问题的JavaScript。您可以使用jsfiddle.net与我们分享代码...