【问题标题】:jquery $ notation returns null for document element [duplicate]jquery $ notation为文档元素返回null [重复]
【发布时间】:2016-01-18 04:36:59
【问题描述】:

我正在尝试使用 javascript 来更改 ToysRUs 地址页面上选择框的值。该项目是一个自动填写地址表格的扩展。

项目ID是billingAddress.address.stateSelect

document.getElementById("billingAddress.address.stateSelect") // returns the element.

$("#billingAddress.address.stateSelect") // returns null.

我想使用$("#billingAddress.address.stateSelect").val("CA") 更改选择,但我不能,因为它为空。

页面正在使用 jQuery

    (typeof jQuery != 'undefined') // is true

用反斜杠转义句点后我仍然得到 null。

s=document.getElementById("billingAddress.address.stateSelect").id;
console.log(s);
s= "#"+s.replace( /(:|\.|[|])/g, "\\$1" ); 
//also tried \\\\ backslashes and \\\ backslashes
console.log(s); //gives billingAddress\\.address\\.stateSelect
console.log($(s)); //is still null

【问题讨论】:

  • 在 css 中,#billingAddress.address.stateSelect 会选择什么?一个id为billingAddress的元素,类名address和stateSelect,对吧? jquery 选择器是 css 选择器,因此必须转义某些特殊字符才能选择具有所述特殊字符的 id。
  • 是#billingAddress.address.stateSelect 还是您的元素的id?
  • 就像@KevinB 建议的那样,选择器可能会将. 混淆为一个类:$("#billingAddress .addres .stateSelect"),而getElementById 不会这样做。
  • 如上所述,避开你的经期。看到这个小提琴:jsfiddle.net/xpcxekuq/2

标签: jquery select triggers null


【解决方案1】:

您没有发布完整的代码。我能想到的只有 1:您的代码在加载选择之前运行,这种情况使用 $(function(){your code goes here}); 2:你不能在名称中使用点,因为浏览器认为它想告诉它点是指类而不是名称的一部分。

【讨论】:

    【解决方案2】:

    除非 jQuery 别名为 $,否则 $ 表示法不一定有效。尝试使用:

    jQuery("#billingAddress.address.stateSelect"); 
    

    而不是 $ 符号。

    编辑:

    我没有仔细阅读这个问题。您正在使用的选择器是一个 ID,它也有两个类名,即“address”和“stateSelect”。我提到的仍然可能是一个问题,但您需要确保首先使用正确的选择器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-01-02
      • 1970-01-01
      • 2023-03-20
      • 2015-12-19
      • 2012-06-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-19
      相关资源
      最近更新 更多