【发布时间】:2009-12-23 15:55:05
【问题描述】:
在过去的一天半里,我遇到了 jQuery 无法在我的 HTML 中找到 <form> 元素的问题。我多次通过验证器运行我的 HTML,验证了我的 JS 和 CSS,甚至删除了不必要的 JS 和 CSS 文件,现在简化为:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.8.0r4/build/reset/reset-min.css" />
</head>
<body>
<form>
<input type="textbox" name="action" value="view"></input>
<button>Test</button>
</form>
</body>
</html>
在将我的 HTML 简化为基本内容后,我检查了 jQuery 是否可以使用 $('form') 简单地抓取 <form> 元素。好吧,jQuery 什么也没返回。它完全崩溃了。它什么也没返回,甚至没有返回一个 jQuery 对象。所以我又一次继续我的疯狂,验证 HTML 等等,但仍然一无所获!
我第二次重写了 HTML,但方式不完全相同,并且成功了!所以我区分了这两个文件并开始调整原始文件以逐渐与我刚刚编写的新文件相同。好吧,事实证明name 属性的值是搞砸一切的罪魁祸首!只需将值更改为 action 以外的任何值,jQuery 就可以最终选择 <form> 元素!真的?! !@#%$!@#!!!
所以我的问题是:action 是 jQuery 中的关键字吗?属性的值是如何搞砸一切的?
如果它是一个关键字并且您不想解释原因,请您指向我的文档,以便我可以在阅读后打自己的脑袋。属性的值会搞砸事情似乎仍然很奇怪,但这可能是因为我对 jQuery 的实现一无所知。 =)
【问题讨论】:
-
这不是 jQuery 问题,而是老式浏览器表单对象模型的问题。见jibbering.com/faq/names/index.html。
标签: jquery html action keyword