【问题标题】:jquery - select dom by name likejquery - 按名称选择dom
【发布时间】:2015-12-11 23:49:13
【问题描述】:

我有很多使用这些名字的dom:

<input id="partido1-jugada4-empate" name="bets[3][0][0]" title="partido1-jugada4-empate" type="radio" value="X">

<input id="partido1-jugada4-empate" name="bets[3][1][0]" title="partido1-jugada4-empate" type="radio" value="X">

...

<input id="partido1-jugada4-empate" name="bets[3][13][0]" title="partido1-jugada4-empate" type="radio" value="X">

我需要选择这些类似的东西:

$( "input[name*='[3][*][0]']" )

上一行使用该名称提供一些输入

【问题讨论】:

  • 你不能像那样在类的中间使用通配符,但是如果你的 JavaScript 知道应该放什么数字,你可以在其中连接一个变量,也许在一个循环中?跨度>

标签: javascript jquery dom jquery-selectors


【解决方案1】:

正如这里的问题所暗示的那样

jQuery selector for matching at start AND end of ID

您应该执行以下操作:

$("input[name ^=//[13//]][name $=//[0//]")

所以它会读取名称是否以 [13] 开头并以 [0] 结尾

反斜杠 '//' 用于告诉 jQuery '[' 和 ']' 不是保留括号。

编辑:

正确答案是:

ᾠῗᵲᄐᶌ

在下面的 cmets 中:)

【讨论】:

  • 不错的答案 - 出于某种原因,我对如何仅使用选择器来构建它感到困惑
  • 您好,感谢您的回答...但我收到语法表达式错误
  • @DanielGarciaSanchez 正确的选择器语法是 $('input[name^="bets[3]["][name$="][0]"]')
  • 感谢@ᾠῗᵲᄐᶌ,非常棒,对我有用!
【解决方案2】:

您可以使用.filter() 并使用正则表达式来比较名称以查看它是否与某个模式匹配

var x = $('input').filter(function(i,v){
    return /^bets\[3\]\[.+\]\[0\]$/.test(v.name);   
});

Fiddle

^bets\[3\]\[.+\]\[0\]$

Debuggex Demo

【讨论】:

    猜你喜欢
    • 2018-09-08
    • 2016-11-28
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 2012-11-24
    相关资源
    最近更新 更多