Jquery 显示下一个,直到忽略参数

Jquery 显示下一个,直到忽略参数,jquery,Jquery,在下面的代码中,我希望看到显示的红色、蓝色、绿色和棕色行,但除了红色之外,所有行都被隐藏,就好像忽略了nextUntil参数一样。有什么线索吗?谢谢 经过一些研究,我尝试了两种方法 $("#firstrow").nextUntil('span[class="hues"]').hide(); 及 HTML: <!DOCTYPE html> <html> <head> <script type="text/javascript" s

在下面的代码中,我希望看到显示的红色、蓝色、绿色和棕色行,但除了红色之外,所有行都被隐藏,就好像忽略了nextUntil参数一样。有什么线索吗?谢谢

经过一些研究,我尝试了两种方法

$("#firstrow").nextUntil('span[class="hues"]').hide();

HTML:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"/>
        <script>
            $(document).ready(function() {
                $("#firstrow").nextUntil('span[class="hues"]').hide();
                //$("#firstrow").nextUntil('span:not(.colors)').hide();            
            });
        </script>
    </head>
    <body>
        <table id="colortable">
            <tr id="firstrow">
                <span class="colors">Red</span>
            </tr>
            <tr>
                <span class="colors">Orange</span>
            </tr>
            <tr>
                <span class="hues">Blue</span>
            </tr>
            <tr>
                <span class="shades">Green</span>
            </tr>
            <tr>
                <span class="colors">Brown</span>
            </tr>
        </table>
    </body>
</html>

$(文档).ready(函数(){
$(“#firstrow”).nextUntil('span[class=“hues”]).hide();
//$(“#firstrow”).nextUntil('span:not(.colors')).hide();
});
红色
橙色
蓝色
绿色
棕色的

您的标记无效,
tr
元素应该只有
td
子元素

<table id="colortable">
    <tbody>
        <tr id="firstrow">
            <td> 
                <span class="colors">Red</span>
            </td>
        </tr>
        ...
    </tbody>
</table>

如果要选择与选择器匹配的所有下一个同级元素,可以使用
nextAll
方法:

// Select the all next sibling elements that match the selector
$("#firstrow").nextAll('tr:has(span.hues)').hide();

您的标记无效,
tr
元素应该只有
td
子元素

<table id="colortable">
    <tbody>
        <tr id="firstrow">
            <td> 
                <span class="colors">Red</span>
            </td>
        </tr>
        ...
    </tbody>
</table>

如果要选择与选择器匹配的所有下一个同级元素,可以使用
nextAll
方法:

// Select the all next sibling elements that match the selector
$("#firstrow").nextAll('tr:has(span.hues)').hide();

.nextUntil()
搜索了兄弟姐妹,而您的span不是
#firstrow
的兄弟姐妹。此外,您的HTML被严重破坏:一个
tr
只能有
th
td
元素作为子元素。其他任何东西,比如
span
都应该包含在这些元素中。大卫·托马斯——是的,我知道得更清楚,但在匆忙发布这篇文章时,不知何故我忽略了td。我的测试文件包括td,但有相同的问题。谢谢。j08691-我明白了。我想nextUntil会搜索所有兄弟姐妹,直到找到一个带有span[class=“hues”]作为后代的兄弟姐妹。我需要更多的学习和实验。谢谢。
.nextUntil()
搜索了兄弟姐妹,您的span不是
#firstrow
的兄弟姐妹。而且,您的HTML被严重破坏:一个
tr
只能有
th
td
元素作为子元素。其他任何东西,比如
span
都应该包含在这些元素中。大卫·托马斯——是的,我知道得更清楚,但在匆忙发布这篇文章时,不知何故我忽略了td。我的测试文件包括td,但有相同的问题。谢谢。j08691-我明白了。我想nextUntil会搜索所有兄弟姐妹,直到找到一个带有span[class=“hues”]作为后代的兄弟姐妹。我需要更多的学习和实验。谢谢。未定义-这增加了更多的澄清;因为#firstrow是tr,我认为所有的兄弟姐妹都是tr,但显然我需要具体说明跨度与兄弟姐妹tr的关系。您在JSFIDLE上的示例非常有帮助。谢谢我将对此进行更多的研究。未定义-这增加了更多的澄清;因为#firstrow是tr,我认为所有的兄弟姐妹都是tr,但显然我需要具体说明跨度与兄弟姐妹tr的关系。您在JSFIDLE上的示例非常有帮助。谢谢我将进一步研究这个问题。