【问题标题】:What is the jQuery equivalent to document.forms[0].elements[i].value;?与 document.forms[0].elements[i].value; 等效的 jQuery 是什么?
【发布时间】:2010-07-19 22:34:00
【问题描述】:

jquery 相当于什么:document.forms[0].elements[i].value;

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

【问题讨论】:

  • 您能否发布一个标记示例,以及您想要提取哪些值?
  • 在此处了解如何选择内容:api.jquery.com/category/selectors 以及如何在此处遍历:api.jquery.com/category/traversing
  • 我用 javascript 编写了一个基本的表单验证脚本,并试图将其转换为 JQUERY。这是一个 for 循环,它搜索 from 检查中的所有元素,以确保所有值都已从默认值(即名字姓氏)更改为真实值。我发布的代码 sn-p 附加到一个变量,该变量保存当前输入的值并根据默认值列表检查它。 thisVal = document.forms[0].elements[i].value;

标签: javascript jquery equivalent


【解决方案1】:

通常的翻译是:input选择器:

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

:first 是因为您的示例提取了第一个 <form>,如果只有一个或者您想要所有输入元素,只需关闭 :first:input selector 适用于 <input><select><textarea>...您通常在这里关心的所有元素。

但是,如果我们确切地知道您的目标是什么,那么可能有一种非常简单的方法可以实现它。如果您可以发布更多信息,例如 HTML 以及您想要提取的值(或执行其他操作)。

【讨论】:

  • 感谢您的回答。我用 javascript 编写了一个基本的表单验证脚本,并试图将其转换为 JQUERY。这是一个 for 循环,它搜索表单中的所有元素,检查以确保所有值都从默认值(即名字姓氏)更改为真实值。我发布的代码 sn-p 附加到一个变量,该变量保存当前输入的值并根据默认值列表检查它。 thisVal = document.forms[0].elements[i].value;
  • 我的页面上也有 2 个表单。我当前的工作版本有
    验证 thisVal = document.forms[formName].elements[i].value;
    的特定表单
【解决方案2】:

嗯,直译过来就是:

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

但是 jQuery 可以很容易地通过 ID 或 CSS 选择器等其他方式抓取元素。如果您执行以下操作会更容易维护:

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

【讨论】:

    【解决方案3】:
    $("#formid input").each(function(){
        alert($(this).attr("value"))
    })  
    

    【讨论】:

    • 这只会抓取input 字段,而不是selecttextarea
    【解决方案4】:

    这将为您提供表单下的所有元素。包括非表单元素:

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

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

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

    【讨论】:

    • 表单控件通常不是表单的子级
    • @David 你是对的。它们往往是嵌套的,尽管并非总是如此。我想我应该改用 find 或者只列出我们想要返回的控件类型。我至少会改用 find 来代替。
    【解决方案5】:

    我不确定您要完成什么,但您应该能够执行以下操作:

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

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

    【讨论】:

    • 这不会返回任何内容...您正在选择 <form> 标签 :)
    • 这仍然不正确,不是我的否决...但我认为您在这里对选择器的思考不正确,这将返回第一个元素,示例是elements[i],它可以翻译非常接近:$('form:first :input').eq(i).val();
    • 是的,@Nick,再次正确。我想我只是在想他是想生第一个孩子。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2016-02-27
    相关资源
    最近更新 更多