我正在使用javascript和jquery
与Goolge Apis合作问题是一些YouTube频道的标题有空格'要么 !或......符号
所以我需要将这些标题作为字符串传递,但即使这样我也会收到错误
Error: Syntax error, unrecognized expression: #channelBomB!
我的代码在
下面function placeChannelVideoIds(YouTubeChannelTitle){
$('#channel'+String(YouTubeChannelTitle)).append('\
<H1>YouTubeChannelTitle</H1>>);
}
placeChannelVideoIds(String(YouTubeChannelTitle));
答案 0 :(得分:3)
这与您尝试追加的字符串无关,ID不能包含任何空白,标记或!
,基本上,您只能使用a-zA-Z
,{{1 },0-9
HTML 4中的
_-.
对于HTML 4,ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(&#34; - &#34;),下划线(&#34; _&#34;),冒号(&#34;:&#34;)和句号(&#34;。&#34;)。
HTML 5 中的
id
HTML 5接受&#39; _&#39;,&#39; - &#39;和&#39;。&#39;如果不是在id的开始。它也是一个真正的全球属性。
id属性的值不得包含空格(空格,制表符等)。浏览器会处理包含空格的不符合ID,就好像空格是ID的一部分一样。与允许以空格分隔的值的class属性相比,元素只能有一个ID。
参考:https://developer.mozilla.org/en/docs/Web/HTML/Global_attributes/id
好的,所以你不能在id,中使用任何字符串,但是你可以对字符串进行散列以获得一个唯一的数字并用作id,并且你对相同的字符串进行散列,你总是得到相同的唯一字符串ID 强>
然后您的代码将如下所示(将id
函数添加到您的代码中):
sdbmCode
正如您在下面的代码示例中所看到的,任何字符串都可以被哈希转换为唯一的ID(嗯,非常罕见的是,您将从两个不同的字符串中获得相同的ID(例如连续3次获胜彩票) ))。
参考:http://erlycoder.com/49/javascript-hash-functions-to-convert-string-into-integer-hash-
function placeChannelVideoIds(YouTubeChannelTitle){
var hash_id = sdbmCode(YouTubeChannelTitle);
$('#channel'+ hash_id).append('<h1>'+YouTubeChannelTitle+'</h1>');
}
placeChannelVideoIds(YouTubeChannelTitle);
&#13;