【问题标题】:jQuery Attribute selector with a period带有句点的 jQuery 属性选择器
【发布时间】:2012-02-03 17:38:37
【问题描述】:

我正在尝试使用 jQuery 选择器来查找具有特定名称的所有输入字段:

$('input[name=Filter']).click(function() {
    // do something
});

这应该匹配以下项目:

<input type="radio" name="Filter" value="A" />
<input type="radio" name="Filter" value="B" />

这工作正常。我遇到的问题是我的名字是由 ASP.net MVC 动态生成的,名字有句号:

<input type="radio" name="Parent.Filter" value="A" />
<input type="radio" name="Parent.Filter" value="B" />

我尝试编写以下选择器:

$('input[name=Parent.Filter]').click(function() {
});

我收到以下错误: Uncaught Syntax error, unrecognized expression: [name=Parent.Filter]

如何编写此表达式以使其正常工作?

【问题讨论】:

  • 不确定是否可行,但请尝试...$('input[name="Parent.Filter"]')
  • 你试过'input[name*="Filter"]'吗?

标签: jquery jquery-selectors


【解决方案1】:

引号是强制性的,在这种情况下,如果没有它们,它将无法工作。

$('input[name="Parent.Filter"]').click(function() {
});

From the API reference:

一个属性值。报价是强制性的。

Here's a jsFiddle 证明了这一点。

【讨论】:

    【解决方案2】:

    这行得通,你只需要在名称周围加上“”:

    $('input[name="Parent.Filter"]').click(function() {
    });
    

    【讨论】:

      【解决方案3】:

      根据我对该问题的评论,我可以确认这确实有效...

      $('input[name="Parent.Filter"]').click(function() {
      });
      

      Working example here

      【讨论】:

        【解决方案4】:

        使用$("input[name='Parent.Filter']")

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-05-29
          • 1970-01-01
          • 2017-03-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          相关资源
          最近更新 更多