将变量作为JQuery ID传递

时间:2011-07-22 17:51:08

标签: javascript jquery

我将id作为字符串传递给函数。我想使用该ID然后更改背景颜色。我用过:

$("#"+address).css("background-color", "#3399FF");

但它没有改变背景颜色,当我这样做时:

console.log($("#"+address).css("background-color"));

它是未定义的。

如何将变量地址传递给jquery?

感谢您的帮助。

凯文

3 个答案:

答案 0 :(得分:2)

我将在黑暗中刺伤,

您说您正在使用并以地址作为身份

1234 Any st.

附加#,

#1234 Any st.

jquery选择器变为,找到ID为1234的元素,然后是Any类型的任何子元素,然后是类型为'st的st类型的子元素。 看起来像

<div id="1234">
  <any>
     <st/>
  </any>
</div>

你需要逃离空间,句号,这里的一切!“#$%&amp;'()* +,。/ :;&lt; =&gt;?@ [] ^`{|}〜

根据specification,ID应

must begin with a letter ([A-Za-z]) and may be followed by any number of letters,
digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

为了逃避有效的id使用,

function jq(myid) { 
    return '#' + myid.replace(/(:|\.)/g,'\\$1');
}

根据HERE

答案 1 :(得分:0)

一对猜测:

  1. address设置不正确,您的实际查询评估为$('#')
  2. $未设置,或设置为不同的库,或完全未定义。 (不太可能,因为你没有提到其他错误)
  3. address设置为不存在的id值:$('#foo')可能不存在于您需要的页面上$('#bar')
  4. 请发布更多代码,然后尝试运行console.log(address);以确保您正在执行您认为应该执行的操作。

答案 2 :(得分:0)

我认为我们需要查看地址示例,以便更好地为您提供帮助。