Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.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
Jquery CSS代码适用于一个部分,但不适用于其他部分_Jquery_Css - Fatal编程技术网

Jquery CSS代码适用于一个部分,但不适用于其他部分

Jquery CSS代码适用于一个部分,但不适用于其他部分,jquery,css,Jquery,Css,我想给第二栏涂颜色。我在一个.js文件中有代码: if($data == 0 ){ $display.after("<tr id='after'><td></td><td>First Part</td></tr>"); return; } $display.after("<tr id='after'><td></td><td><table>..Sec

我想给第二栏涂颜色。我在一个.js文件中有代码:

if($data == 0 ){
   $display.after("<tr id='after'><td></td><td>First Part</td></tr>");
   return; 
}

$display.after("<tr id='after'><td></td><td><table>..Second Part...</table></td></tr>"); 
第二部分改变颜色,但第一部分不变

如果我使用:

#after td + td {
    background-color: red; 
}

或者如果我在第一部分添加一个表。两种方法都有效,为什么

您使用了错误的选择器。。如果要在
之后嵌套在
中的所有
td
上应用背景,则需要使用

#after td {
   background-color: red; 
}
或者也可以将背景应用于
tr
元素

#after {
   background-color: red; 
}
您正在使用的第一个选择器将选择嵌套在另一个
td
元素中的
td
元素,该元素进一步嵌套在一个元素中,该元素在
之后有一个id,这在语义上是不正确的

使用的第二个选择器选择相邻图元。因此,它将选择与另一个
td
相邻的
td
,后者进一步嵌套在一个元素中,在
之后


您使用了错误的选择器。。如果要在
之后嵌套在
中的所有
td
上应用背景,则需要使用

#after td {
   background-color: red; 
}
或者也可以将背景应用于
tr
元素

#after {
   background-color: red; 
}
您正在使用的第一个选择器将选择嵌套在另一个
td
元素中的
td
元素,该元素进一步嵌套在一个元素中,该元素在
之后有一个id,这在语义上是不正确的

使用的第二个选择器选择相邻图元。因此,它将选择与另一个
td
相邻的
td
,后者进一步嵌套在一个元素中,在
之后


空格:它是后代选择器

#after td td {  //affects  tds within #after td
   background-color: red; 
}
+符号:

它是相邻的兄弟组合子。它组合了两个具有相同父对象的简单选择器序列,第二个选择器必须紧跟在第一个选择器之后

#after td + td {  //affects only the next td of #after td
    background-color: red; 
}
这可能对你有帮助

#after td {  //affects all the td in #after 
    background-color: red; 
}

空格:它是后代选择器

#after td td {  //affects  tds within #after td
   background-color: red; 
}
+符号:

它是相邻的兄弟组合子。它组合了两个具有相同父对象的简单选择器序列,第二个选择器必须紧跟在第一个选择器之后

#after td + td {  //affects only the next td of #after td
    background-color: red; 
}
这可能对你有帮助

#after td {  //affects all the td in #after 
    background-color: red; 
}

要仅在
之后的
中设置第二个td的样式,可以使用以下代码:

#after td:nth-child(2)
{
   background-color: red; 
}
编辑:

这不适用于IE8<因此,在这种情况下,您可以使用@mr.expans

#after td + td /* Selects td adjacent to another td */
{
   background-color: red; 
}

要仅在
之后的
中设置第二个td的样式,可以使用以下代码:

#after td:nth-child(2)
{
   background-color: red; 
}
编辑:

这不适用于IE8<因此,在这种情况下,您可以使用@mr.expans

#after td + td /* Selects td adjacent to another td */
{
   background-color: red; 
}


你为什么要用td选择器两次?我只想给第二列上色。哦,好的。等一下:)将添加一个答案。为什么要使用td选择器2次?我只想给第二列着色。哦,好的。稍等:)将添加一个答案。我想更改第二列的颜色,这就是为什么在td之后。问题是我不明白为什么在td之后在第二部分工作。第二部分的#在td之后和#在td+td之后有什么区别。@user1064993我在回答中解释了这两个问题,你读到了吗?我想改变第二列的颜色,这就是为什么#在td之后。问题是我不明白为什么#在td之后适用于第二部分。第二部分,td之后和td+td之后有什么区别。@user1064993我在我的回答中都解释了,你读到了吗?第二部分:td之后和td表之后有什么区别吗?第二部分:td之后和td表之后有什么区别吗?注意:这在IE8中会失败是的,我知道。将为我的答案添加一个修正。这里不需要上课,因为我在我的答案中给出了一个解决方案,
+
将起作用kwel:)呵呵,谢谢,我不想投票,我只想说的是,你可以将该解决方案添加到你的答案中,这是一个被接受的解决方案,所以人们会参考你的答案。现在你找到我了:)我们也会投票给你的答案,这是一个很好的解决方案,但我没有提出建议,因为我认为他想在
之后针对嵌套在
中的单个td注意:这将在IE8中失败是的,我知道。将为我的答案添加一个修正。这里不需要上课,因为我在我的答案中给出了一个解决方案,
+
将起作用kwel:)呵呵,谢谢,我不想投票,我只想说的是,你可以将该解决方案添加到你的答案中,这是一个被接受的解决方案,所以人们会参考你的答案。现在你找到我了:)我们也会投票给你的答案,这是一个很好的解决方案,但我没有提出建议,因为我认为他想要针对嵌套在
\after