【问题标题】:Jquery operation on DOM element with '.' in ID has no effect带有“。”的 DOM 元素上的 Jquery 操作在ID没有效果
【发布时间】:2011-11-06 23:02:14
【问题描述】:

例如“现场”版本在这里:http://jsfiddle.net/Ltmbd/5/

【问题讨论】:

  • 你能更新你的jQuery版本吗?小提琴似乎适用于 1.4.4 之后的所有版本。
  • 您是说即使您的 jQuery 选择器不使用 ID,例如您的示例 $("select")$(this),如果应该匹配元素有句号 (". ") 在其 ID 中?还是仅当您尝试按 ID 选择时才会出现问题:$("#some.list")
  • 我认为詹姆斯的评论是正确的。看起来这是一个错误,他们修复了它。如果这绝对不是一个选项,您所能做的就是猴子补丁 1.4.4 来捕获他们为解决问题而应用的任何修复(但如果您可以对其进行猴子补丁,为什么不直接升级呢?)。
  • @nnnnnn - 检查问题中链接到的小提琴。它似乎不适用于$("select")

标签: javascript jquery


【解决方案1】:

这里是解决问题的另一种选择。希望这会有所帮助。

$(function() {
    $("select").each(function() {
        $(this).attr('selectedIndex', 1);
    });
});

谢谢。

【讨论】:

    【解决方案2】:

    1.4.4 以上的 jQuery 版本可以解决问题。 考虑更新您的 jQuery 版本,您的问题应该得到解决,谢谢。

    这是报告的原始错误,情况是它已在 1.5 版本中解决。

    http://bugs.jquery.com/ticket/8021

    【讨论】:

    • 我没有理由不能升级,所以接受这个答案。
    【解决方案3】:

    如果由于某种原因你不得不坚持使用 jQuery 1.4.4,请使用selectedIndex 更改选项值。它可以工作,即使 ID 中有一个点。

    this.selectedIndex = 1; //Select the second <option>
    

    小提琴:http://jsfiddle.net/Ltmbd/6/

    或者,您可以使用:

    this.selectedIndex = $(this).find('option[value=2]').index();
    

    小提琴:http://jsfiddle.net/Ltmbd/10/

    【讨论】:

    • 感谢您的解决方法。在其他情况下,这个错误可能会给我带来问题(即不仅仅是选择列表中的一个项目),所以我会按照其他答案中的说明进行升级。
    【解决方案4】:

    即使我认为我做对了,我也花了太多时间在这上面。 原来 1.4.4 版本似乎有一个与此相关的错误。我回到了 1.3.2 以及任何更新的版本,这都奏效了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-01-21
      • 2023-03-20
      • 2011-02-27
      • 1970-01-01
      • 1970-01-01
      • 2015-05-15
      • 2012-10-22
      相关资源
      最近更新 更多