通过!,'传递字符串' ...符号加入jquery附加

时间:2017-05-31 04:15:44

标签: javascript jquery string youtube-data-api google-api-js-client

我正在使用javascript和jquery

与Goolge Apis合作

问题是一些YouTube频道的标题有空格'要么 !或......符号

所以我需要将这些标题作为字符串传递,但即使这样我也会收到错误

Error: Syntax error, unrecognized expression: #channelBomB!

我的代码在

下面
function placeChannelVideoIds(YouTubeChannelTitle){

    $('#channel'+String(YouTubeChannelTitle)).append('\
        <H1>YouTubeChannelTitle</H1>>);

}
placeChannelVideoIds(String(YouTubeChannelTitle));

1 个答案:

答案 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-

&#13;
&#13;
function placeChannelVideoIds(YouTubeChannelTitle){
    var hash_id = sdbmCode(YouTubeChannelTitle);
    $('#channel'+ hash_id).append('<h1>'+YouTubeChannelTitle+'</h1>');
}
placeChannelVideoIds(YouTubeChannelTitle);
&#13;
&#13;
&#13;