基本javascript jquery
我正在尝试使用Jquery库自学基本的html和JavaScript。使用下面的代码,我试图更改div red内的p标记和div yellow外的其他p标记。下面的代码将所有p标记更改为黄色,但当我放置4时。3岁以上。它起作用了。只需要一个简单的解释为什么,这也是html代码 4(基本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”)更通用,因此,如果
“div p”
)比3(“div p”
)更通用,因此如果将4置于3之后,您将首先将嵌套在div中的每个p涂成红色,但之后立即将其涂成黄色,因为这是您在4中所说的4(“div p”
)比3(“div p”
)更通用,因此,如果将4置于3之后,您将首先将嵌套在div中的每个p涂成红色,但之后立即将其涂成黄色,因为这就是您在4css()中所说的内容。
函数设置style
属性。因此,由于两个调用都将在某个元素上设置该属性并相互覆盖,所以排序不重要。jQueryscss()
函数设置样式
属性。因此,对蒙版进行排序,因为两个调用都将在某个元素上设置该属性,并相互覆盖
$("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行中,您通过将allp
设置为黄色(无论它们是否在div
中)来覆盖这一点。这更多是关于css的特殊性。在第3行中,选择器将div p
内的所有p
设置为红色。在第4行中,您通过将allp
设置为黄色(无论它们是否在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);
});
这段代码循环