【发布时间】:2013-01-10 09:35:01
【问题描述】:
我的一个 div id="ftbutton_1357567084/Team:8/User:10/Image:195" 有以下 ID,我想在调用 ajax 后替换它的 html。
当我尝试使用 jQuery 执行此操作时,类似以下的操作不起作用
jQuery("#"+id).html(SOME HTML HERE);
以下代码的工作原理
document.getElementById(id).innerHTML = SOME HTML HERE;
我知道 ID 不应该包含一些特殊字符
ID attributes should be = after an initial letter (a-z or A-Z), may also use
periods and colons, in addition to letters, numbers, hyphens, and underscores.
参考How do I select an element by an ID that has characters used in CSS notation?
但由于某种原因,我无法更改每个元素的 id,因为它被认为是站点。
我也试过了,但是没用
function jq( myid ) {
return "#" + myid.replace( /(:|\.)/g, "\\$1" );
}
jQuery(jq("#"+id)).html(SOME HTML HERE);
我只是想知道是否是这种情况,我需要使用document.getElementById(""+id) 而不是jQuery("#"+id) 吗?
或者换句话说
document.getElementById(""+id) 比 jQuery("#"+id) 更可靠吗?
【问题讨论】:
-
同时转义
/。 api.jquery.com/category/selectors中列出的所有字符。 -
做一个jsFiddle.net 然后你可以玩弄这个id,看看是不是你的特殊字符不起作用!
-
在你的 jq() 函数中,你不应该返回额外的 '#',因为它在你使用它时会变成双 '##'
标签: javascript jquery html innerhtml