此代码无法找到具有特定ID的div

时间:2014-02-18 10:43:41

标签: javascript jquery

如果您在此处尝试此代码:

http://jsfiddle.net/8BEpZ/

我正在尝试找到一个id为“test”的div,如果我找不到,我会创建它。问题是,如果我多次调用此函数,它会一直重新创建div:

var divClasses = $('‪#test');
if (divClasses.length==0) {
    divClasses = $('<div />', { id:"test" }).appendTo('body');
    console.log('anormal !');
}

怎么来的?

5 个答案:

答案 0 :(得分:7)

您的键盘必须生成与预期不同的字符,'#不正确。由于我的Chrome开发工具在玩这些角色时不断崩溃,所以无法确切地知道哪一个..

您可以看到'#test'

之间的区别
encodeURIComponent('#test')
-> "%E2%80%AA%23test"

#test键入英文键盘

encodeURIComponent('#test')
-> "%23test"

我认为这可能就是开场白。

enter image description here

答案 1 :(得分:2)

我检查了你的jsfiddle。将单引号更改为双引号后,它就有效了。

var divClasses = $('‪#test');

var divClasses = $("#test");

答案 2 :(得分:1)

解决方案尝试this

 if (!$('#test').length)  
 {    
   divClasses = $('<div />', { id:"test"}).appendTo('body');  
    console.log('anormal !');  
}

尝试删除该div,它应该创建一个具有相同ID的新。

答案 3 :(得分:-1)

您可以将.append()更改为html()方法,该方法更适合您尝试执行的操作:http://jsfiddle.net/8BEpZ/4/

Et sinon,il fautvraimentarrêterdeplacer des styles directement avec JS,et encore moins des attributs de style HTML;)

答案 4 :(得分:-1)

试试这个:

var divClasses = $('‪#test');
if (divClasses == null) {
    divClasses = $('<div />', { id:"test" }).appendTo('body');
    console.log('anormal !');
}