我有这样的锚标记:
<a id="1_18_shazin@mycompany.com" class="big-link" href="">4</a>
现在我尝试用以下代码替换文本
a = 1;
b = 18;
c = "shazin@mycompany.com";
var tempId = "#"+a+"_"+b+"_"+c;
$(tempId).text("some text");
Thiis永远不会奏效。我试过.html(),. append()。看起来它永远不会找到ID。 但是如果我按类名调用事件,它就有效。
$(".big-link").text("some text");
有任何线索吗?提前谢谢。
答案 0 :(得分:6)
问题在于您构建ID值的方式。问题是
我删除了那些,jquery text()对我来说很好。检查这个小提琴:http://jsfiddle.net/kDnmu/
HTML
<a id="A_1_18_shazin_mycompany-com" class="big-link" href="">4</a>
Jquery
a = 1;
b = 18;
c = "shazin_mycompany-com";
var tempId = "#A_"+a+"_"+b+"_"+c;
$(tempId).text("some text");
有关什么是有效身份证明的详细信息,请查看此SO答案:What are valid values for the id attribute in HTML?
编辑:如果您要动态构建这些ID,请考虑使用您自己的逻辑来转义它们。
答案 1 :(得分:2)
您需要使用@
转义点(。)和\\
字符。试试这个
$("#1_18_shazin\\@mycompany\\.com").text("some text");
答案 2 :(得分:2)
试试这个:http://jsfiddle.net/LPuTr/
a = 1;
b = 18;
c = "shazin@mycompany.com";
aaa = a+'_'+b+'_'+c;
$('a[id="'+aaa+'"]').text("some text");
有关ids
中html 5
的更多信息,请参阅:http://mathiasbynens.be/notes/html5-id-class
答案 3 :(得分:1)
您的ID中包含非法字符,ID也不能以数字开头
答案 4 :(得分:0)
在我看来,你必须失去一段时间。和alpha @然后它有效!
What are valid values for the id attribute in HTML?
我理解为什么是alpha,但我对句号没有任何线索:/
答案 5 :(得分:0)
问题是您在ID中使用@
和.
在ID和NAME令牌必须以字母([A-Za-z])开头,可能是 后跟任意数量的字母,数字([0-9]),连字符(“ - ”), 下划线(“_”),冒号(“:”)和句点(“。”)。
@
和.
被允许的情况下, :
对于ID不合法,但是应该避免它,因为:
例如,ID可以标记为“a.b:c”并在中引用 样式表为#a.b:c但是作为元素的id,它 可能意味着id“a”,类“b”,伪选择器“c”