【问题标题】:jquery : Get value from id="foo[1]"?jquery:从 id="foo[1]" 获取值?
【发布时间】:2010-08-27 12:51:05
【问题描述】:

我有多个元素在表单中具有 ID(和名称):

id="foo[1]"
id="foo[2]"

但是,我似乎无法使用以下方法恢复价值:

$('#foo[1]').val();

在 Jquery 中访问这些多维数组的正确语法是什么。

谢谢。

【问题讨论】:

    标签: jquery


    【解决方案1】:

    $('[id=foo\[1\]]') 将选择那些类型的 id

    http://jsfiddle.net/UaxC2/

    【讨论】:

    • 是的!...但也请注意,在这种情况下它不好,因为它不是有效的 html。 ;)
    【解决方案2】:

    我建议使用 id="foo_1" 和 id="foo_2" 代替括号(这样会更好)。

    那么正确的语法是:$('#foo_1').val()(你缺少“#”)

    编辑:看起来您的 id 不是有效的 html:

    来自http://www.w3schools.com/tags/att_standard_id.asp

    为一个元素指定一个唯一的 id。 命名规则:

    必须以字母 A-Z 或 a-z 开头 后面可以跟:字母(A-Za-z), 数字 (0-9)、连字符 ("-")、 下划线 ("_")、冒号 (":") 和 句点 (".") 的值为 区分大小写

    【讨论】:

      【解决方案3】:

      方括号在 ID 中是不合法的。 HTML data types 说:

      ID 和 NAME 令牌必须以 字母 ([A-Za-z]) 并且可以跟随 由任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_")、冒号 (":") 和句点 (".")。

      另外,要选择和 ID,您需要在选择器前面加上 #, $('#foo')。

      【讨论】:

      • 这是不合法的,但它在表单中被大量使用,所以我可以通过 PHP 解析它并作为多维数组访问。 # 在我的原始代码中 -> 只是在重新输入时错过了它:-)
      【解决方案4】:
      $('#foo[1]').val(); // you missed # which denotes id
      

      另一方面,$('#foo[1]').val(); 将不起作用,因为括号用于属性,例如$('#foo[name]') 将获取带有 id foo 和 ann 属性名称的元素。

      【讨论】:

      • @tster:你需要转义:$('#foo\\[1\\]').val();
      • @Daniel,是的,它会起作用,但我不建议这样做,因为在这种情况下它不合适。 [] 的 ID 无效。 ;)
      • @Daniel,是的,它会起作用。仍然让我们坚持“先写有效的html”这一行:)
      • @Reigel, @tster:那么不要把它用于 jQuery 特定功能的主要论点。这不是这里的问题:)
      • 这不是全部 invalid HTML。我们正处于过渡阶段。
      【解决方案5】:

      首先,如果你要通过 id 获取商品,你应该在 id 之前添加“#”,

      $('#foo[1]').

      其次 $() 将返回与提供的模式匹配的所有元素,因此您将获得具有该 ID 的所有元素。

      【讨论】:

        【解决方案6】:

        使用foo[1]并不能真正使它成为一个多维数组,你也不能像那样显式地使用[]括号,jQuery有一个使用它的选择器,所以你需要使用$('div[id="foo[2]"]')来获取它工作,附demo。不过我建议只使用foo1

        演示 http://jsfiddle.net/RSRSQ/

        【讨论】:

          猜你喜欢
          • 2021-01-21
          • 1970-01-01
          • 2021-07-25
          • 1970-01-01
          • 1970-01-01
          • 2011-05-23
          • 2012-06-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多