2010-07-19 99 views
6

什么是相当于jQuery的:document.forms[0].elements[i].value;与document.forms [0] .elements [i] .value等价的jQuery是什么?

我不知道如何浏览表单及其在jQuery中的元素,并想知道如何去做。

+1

你可以发表你的标记的例子,你想要拉出哪些值? – 2010-07-19 22:38:27

+0

阅读关于如何选择这里的东西:http://api.jquery.com/category/selectors/和如何遍历这里:http://api.jquery.com/category/traversing/。 – karim79 2010-07-19 22:50:07

+0

我在javascript中编写了一个基本的表单验证脚本,我试图将它转换为JQUERY。它是一个for循环,用于搜索from检查中的所有元素,以确保所有值都从默认值(即名字姓氏)更改为真实值。 我发布的代码片段附加到一个变量,该变量保存当前输入的值并根据默认值列表进行检查。 thisVal = document.forms [0] .elements [i] .value; – Ian 2010-07-20 05:17:07

回答

13

通常的翻译是:input选择:

$("form:first :input").each(function() { 
    alert($(this).val()); //alerts the value 
}); 

:first是因为你的例子拉动第一<form>,如果只有一个或者你想要所有的输入元素,只需要关闭:first:input selector适用于<input>,<select>,<textarea> ...您在此处通常关心的所有元素。但是,如果我们确切知道你的目标是什么,那么可能有一个非常简单的方法来实现它。如果你可以发布更多的信息,比如HTML和你想要提取的值(或者做其他事情)。

+0

+1非常整齐。 :) – 2010-07-19 22:49:13

+0

感谢您的答案。 我在javascript中编写了一个基本的表单验证脚本,我试图将它转换到JQUERY。它是一个for循环,用于搜索表单中的所有元素,检查所有值是否已从默认值(即名字姓氏)更改为真实值。我发布的代码片段附加到一个变量,该变量保存当前输入的值并将其与默认值列表进行比较。 thisVal = document.forms [0] .elements [i] .value; – Ian 2010-07-20 05:18:12

+0

我的页面上也有两种形式。我目前的工作版本有

来验证特定的表单 thisVal = document.forms [formName] .elements [i] .value; – Ian 2010-07-20 05:20:19

0

我不太确定你想完成什么,但你应该能够做这样的事情:

$('form:first').children(':first').val(); 

这将在第一<form>获得第一个子节点的值标记在DOM中。

+2

这将不会返回任何内容...您正在选择一个''标记:) – 2010-07-19 22:39:23

+0

谢谢@尼克,您是正确的 - 我修复了我的代码段。 – 2010-07-19 22:47:04

+0

这仍然是不正确的,不是我downvote ...但我不认为你在这里正确思考选择器,这将返回第一个元素,这个例子是'元素[i]',它转换得非常密切: '$('form:first:input')。eq(i).val();' – 2010-07-19 22:52:20

0
$("#formid input").each(function(){ 
    alert($(this).attr("value")) 
}) 
+0

这只会抓住'input'字段,而不是'select'或'textarea'。 – 2010-07-19 22:53:42

1

好,直译,它会是:

$('form:first *:nth-child(i)').val() 

但jQuery的可以很容易地通过抓取其他方式,如ID或CSS选择器的元素。如果你做了类似的事情,它会更容易维护:

$('form#id input.name').val() 
0

这会给你所有形式下的元素。包括非表格元素:

$("#[form id]").find() 

然后,您可以使用每个函数来遍历所有的孩子。或者你可以使用输入选择器仅返回表单元素:

$("#[form id] :input") 
+0

表单控件通常不是表单控件 – Quentin 2010-07-19 22:44:17

+0

@David你是对的。他们倾向于嵌套,但并非总是如此。我想我应该使用查找,或者只是列出我们想要返回的控件的类型。我至少会改用find来代替。 – spinon 2010-07-19 22:48:03

相关问题