如果只有一个输入元素,那么我可以使用:
$("input").val()
我知道.val()
返回第一个匹配元素的value属性的值。
但如果有多个输入怎么办?
答案 0 :(得分:2)
虽然这个问题的其他答案在技术上是正确的,但以这种方式设计表单和脚本是非常糟糕的做法。它很脆弱,很难维护。如果输入字段的数量或这些字段的顺序发生变化,您的代码将会中断。例如,如果您以后决定在网站的模板中添加搜索框,则所有输入字段的索引都会增加1并中断所有内容。
我建议您对表单字段采用基于名称或ID的方法,以便每个表单都有明确的用途,并且可以通过jQuery轻松找到。如果您的表单字段已经有了名称(如果您使用GET或POST使用传统的HTML表单,则应该使用这些名称),那么您可以使用这些名称。您也可以为他们提供唯一的ID。
<input name="Input1" id="MyInput1" value="" >
<input name="Input2" id="MyInput2" value="" >
var input1 = $("#MyInput1").val(); // Get by ID
var input2 = $("[name=Input2]").val(); // Get by input's name
如果每页有多个表单,那么最佳做法会稍微改变一下,但只有在您需要我的时候我才会详细说明。
我希望这可以帮助您了解更大的情况,以便您可以开发出更好的表格。
答案 1 :(得分:1)
您必须使用css伪类:nth-child
然后检索第一个元素
https://developer.mozilla.org/fr/docs/Web/CSS/:nth-child
var element = $("input:nth-child(5n)").first();
答案 2 :(得分:1)
$('input').each(function(i, inputElement){
console.log($(inputElement).val());
})
第二个参数不是它的inputElement的值,你需要在$()中再次包装它以使用.val()
答案 3 :(得分:1)
在多个匹配的情况下,jQuery将返回一个(基于零的)匹配元素数组。
因此,如果您特别想要访问第二个输入元素的值,您可以这样做:
$("input")[1].value
请注意,您在这里访问的是DOM元素数组,而不是jQuery对象,因此您不能使用.val()
,但必须使用元素的value属性。
要获取第n个元素的jQuery对象,可以使用jQuery的:eq()选择器,如下所示:
$("input:eq(1)").val()
答案 4 :(得分:0)
给定一个表单,这将帮助您获取该表单的所有输入元素,然后您就可以获得它们的值。
$("form").each(function(){
$(this).find(':input') //<-- Should return all input elements in that specific form.
});
答案 5 :(得分:0)
一种简单的方法是循环查找每个值:
$('input').each(function(i, value){
// i = index value for each input
// value = actual value
})