Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本javascript jquery_Javascript_Jquery_Html - Fatal编程技术网

基本javascript jquery

基本javascript jquery,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试使用Jquery库自学基本的html和JavaScript。使用下面的代码,我试图更改div red内的p标记和div yellow外的其他p标记。下面的代码将所有p标记更改为黄色,但当我放置4时。3岁以上。它起作用了。只需要一个简单的解释为什么,这也是html代码 4(“div p”)比3(“div p”)更通用,因此如果将4置于3之后,您将首先将嵌套在div中的每个p涂成红色,但之后立即将其涂成黄色,因为这是您在4中所说的4(“div p”)比3(“div p”)更通用,因此,如果

我正在尝试使用Jquery库自学基本的html和JavaScript。使用下面的代码,我试图更改div red内的p标记和div yellow外的其他p标记。下面的代码将所有p标记更改为黄色,但当我放置4时。3岁以上。它起作用了。只需要一个简单的解释为什么,这也是html代码

4(
“div p”
)比3(
“div p”
)更通用,因此如果将4置于3之后,您将首先将嵌套在div中的每个p涂成红色,但之后立即将其涂成黄色,因为这是您在4中所说的4(
“div p”
)比3(
“div p”
)更通用,因此,如果将4置于3之后,您将首先将嵌套在div中的每个p涂成红色,但之后立即将其涂成黄色,因为这就是您在4

css()中所说的内容。函数设置
style
属性。因此,由于两个调用都将在某个元素上设置该属性并相互覆盖,所以排序不重要。

jQuerys
css()
函数设置
样式
属性。因此,对蒙版进行排序,因为两个调用都将在某个元素上设置该属性,并相互覆盖

$("div p").css("background-color" , "red");
上面的代码行更改了嵌套在div下的p(found)。这是css的语法

$("p").css("background-color" , "yellow");
上面的代码行更改了在HTML的DOM中找到的所有p标记

上面的代码行更改了嵌套在div下的p(found)。这是css的语法

$("p").css("background-color" , "yellow");
上面的代码行更改了在HTML的DOM中找到的所有p标记,第3行的
$(“div p”)
以div内的所有p标记为目标(这是级联选择器-第二个标记必须位于第一个标记内),而第4行的
$(“p”)
以所有段落标记为目标。拥有不同颜色的最佳方法确实是将4移到3-3的上方更具体。

第3行的
$(“div p”)
以div内的所有p标记为目标(这是级联选择器-第二个标记必须在第一个标记内),而第4行的
$(“p”)
以所有段落标记为目标。拥有不同颜色的最好方法就是将4移到3之上,3更具体。

让我来解释一下

$("div p").css("background-color" , "red");
上述代码将为div标签内的所有p标签设置
背景色
红色

现在,

上述代码将为所有p标签设置
背景色
黄色,包括
div
标签内外

现在,当你做相反的过程时

$("p").css("background-color" , "yellow");
首先为所有p标签设置
背景色
黄色,在
div
标签的内部和外部

接下来,做这个

$("div p").css("background-color" , "red");
为div标记内的所有p标记设置
背景色
红色,但不为div外的p标记设置背景色。因此,此方法有效,但不是第一种方法。

让我解释一下

$("div p").css("background-color" , "red");
上述代码将为div标签内的所有p标签设置
背景色
红色

现在,

上述代码将为所有p标签设置
背景色
黄色,包括
div
标签内外

现在,当你做相反的过程时

$("p").css("background-color" , "yellow");
首先为所有p标签设置
背景色
黄色,在
div
标签的内部和外部

接下来,做这个

$("div p").css("background-color" , "red");

为div标记内的所有p标记设置
背景色
红色,但不为div外的p标记设置背景色。因此,此方法有效,但不是第一种方法。

这更多地是关于css的特殊性。在第3行中,选择器将
div p
内的所有
p
设置为红色。在第4行中,您通过将all
p
设置为黄色(无论它们是否在
div
中)来覆盖这一点。

这更多是关于css的特殊性。在第3行中,选择器将
div p
内的所有
p
设置为红色。在第4行中,您通过将all
p
设置为黄色(无论它们是否在
div
中)来覆盖它。

原因是:每个JavaScript语句都是按照写入的顺序执行的

因此,在您的情况下,第一条语句将首先将div中所有p标记的背景色更改为红色。但是第二条语句将allp标签的背景色更改为黄色。因此,第二条语句覆盖了第一条语句之前所做的更改

这也解释了为什么,当你改变这些行时,它会像预期的那样工作。因为在这种情况下,第一条语句将allp标签的背景色更改为黄色。然后,第二条语句将把div
标记中的p标记的背景色仅更改为红色

更新:您也可以使用类似以下内容:

$('p').each(function(){
    var clr = ('DIV' === $(this).parent()[0].nodeName) ? 'red' : 'yellow';
    $(this).css('background-color', clr);
});

该代码在所有p标记上循环,并根据其父元素的标记名设置背景颜色。如果是div,则使用红色,否则使用黄色。下面是一个演示:

原因是:每个JavaScript语句都是按照编写的顺序执行的

因此,在您的情况下,第一条语句将首先将div中所有p标记的背景色更改为红色。但是第二条语句将allp标签的背景色更改为黄色。因此,第二条语句覆盖了第一条语句之前所做的更改

这也解释了为什么,当你改变这些行时,它会像预期的那样工作。因为在这种情况下,第一条语句将allp标签的背景色更改为黄色。然后,第二条语句将把div
标记中的p标记的背景色仅更改为红色

更新:您也可以使用类似以下内容:

$('p').each(function(){
    var clr = ('DIV' === $(this).parent()[0].nodeName) ? 'red' : 'yellow';
    $(this).css('background-color', clr);
});
这段代码循环