jquery函数在引号中的单个空格后工作

时间:2013-07-31 20:27:21

标签: javascript jquery syntax

我正在学习jQuery并且是新手。我试图运行一些代码,但它没有运行,然后我发现我只需要在结束双逗号/引号之前给出一个空格“

$("div:not([id=header]) " + strWhichTag).each(function(){
    //some function          
});

现在问题是为什么我们需要在id = header之后给出空格])如果我删除那个空格并使用这个代码,它不起作用,下面的代码没有工作,但为什么

$("div:not([id=header])" + strWhichTag).each(function(){
    //some function          
});

变化------------------------ strWhichTag基本上是h3,但它不是#header

的孩子

我需要知道的第二件事是

var oList = $("<ul id='bookmarksList'>");

这里我可以选择使用单引号和双引号,或者我需要保持相同的级别,如使用双引号并在其中使用单引号

我正在学习它,所以任何帮助都会得到满足

3 个答案:

答案 0 :(得分:5)

第一个问题

jQuery的参数是一个CSS选择器。

空格意味着您正在选择div:not([id=header]);

的孩子
"div:not([id=header]) div#foo"

不同
"div:not([id=header])div#foo"

第二个问题:

引号的“层次结构”无关紧要,"text'foo'dd"没问题,就像'text"foo"dd'一样。

这取决于您的口味,但通常在外面使用单引号更实用,因为您可以在字符串中使用大部分时间使用的双引号。

答案 1 :(得分:2)

让我们说

var strWhichTag = 'span';

$("div:not([id=header])" + strWhichTag)

评估为$("div:not([id=header])span") //没有divspan等同的标记

但如果相同的是$("div:not([id=header]) span") ..它会尝试查找div tag which does not have given id

内的所有跨度

答案 2 :(得分:0)

我不知道strWhichTag是什么,但我们假设它是一个像.class

这样的字符串

没有空格,您不会看到div不是#header且类class

<div class='class'></div> 

这没关系。

使用空格,您正在寻找class而非div内的#header类元素。

<div><img class='class' /></div> 

在这里,它会选择img