Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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选择器_Jquery_Html_Css - Fatal编程技术网

如何获取嵌套jQuery选择器

如何获取嵌套jQuery选择器,jquery,html,css,Jquery,Html,Css,我正在尝试向链接添加一个类。但我似乎不工作。我尝试了所有可能的方法,并在谷歌上搜索了很长一段时间。我可以访问这个标签吗 但是我纠正了我的问题,对不起。我想使用清单的第一个子项,例如product--box--minimal--有多个子项 $('div.listing > div.box--content.is--rounded > div.product--info > a').addClass('test'); <div class="product--box box

我正在尝试向链接添加一个类。但我似乎不工作。我尝试了所有可能的方法,并在谷歌上搜索了很长一段时间。我可以访问这个标签吗


但是我纠正了我的问题,对不起。我想使用清单的第一个子项,例如product--box--minimal--有多个子项

$('div.listing > div.box--content.is--rounded > div.product--info > a').addClass('test');

<div class="product--box box--minimal" data-page-index="" data-ordernumber="XXXX">
    <div class="box--content is--rounded">
        <div class="product--info">
            <a href="XXXXX" title="XXXXX" class="product--image">
                <span class="image--element">
                    <span class="image--media">
                        <img srcset="XXXXX.jpg, XXXXXX2x.jpg 2x" alt="KXXXX" title="XXX">
                    </span>
                </span>
            </a>
            <div class="product--rating-container"></div>
            <span>XXX</span>
            <a href="hXXXXXXX" class="product--title" title="XXXX">
                XXXXXX
            </a>
            <div class="product--price-info">
                <div class="product--price-outer">
                    <div class="product--price">
                        <span class="price--default is--nowrap">XXXXXX</span>
                        <div style="display:none;">ab</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
$('div.listing>div.box--content.is--rounded>div.product--info>a').addClass('test');
XXX
XXXXXX
ab

问题是因为您使用了子选择器(
),而
.box--content.is--rounded
不是
div.listing
的直接子项。请尝试以下方法:

$('div.listing > div.product--box.box--minimal > div.box--content.is--rounded > div.product--info > a').addClass('test');
或者,由于两个
a
元素都在同一个容器中,并且将被该选择器捕获,因此您可以将其简化为:

$('div.listing a').addClass('test');
我想使用清单的第一个子项,例如,
product--box-box--minimal
——有多个子项

$('div.listing > div.box--content.is--rounded > div.product--info > a').addClass('test');

<div class="product--box box--minimal" data-page-index="" data-ordernumber="XXXX">
    <div class="box--content is--rounded">
        <div class="product--info">
            <a href="XXXXX" title="XXXXX" class="product--image">
                <span class="image--element">
                    <span class="image--media">
                        <img srcset="XXXXX.jpg, XXXXXX2x.jpg 2x" alt="KXXXX" title="XXX">
                    </span>
                </span>
            </a>
            <div class="product--rating-container"></div>
            <span>XXX</span>
            <a href="hXXXXXXX" class="product--title" title="XXXX">
                XXXXXX
            </a>
            <div class="product--price-info">
                <div class="product--price-outer">
                    <div class="product--price">
                        <span class="price--default is--nowrap">XXXXXX</span>
                        <div style="display:none;">ab</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
在这种情况下,您可以使用
:first
选择器:

$('div.listing > div.product--box.box--minimal:first > div.box--content.is--rounded > div.product--info > a').addClass('test');

// or, more simply:

$('div.listing div.product--box.box--minimal:first a').addClass('test');

问题是因为您使用了子选择器(
),并且
.box--content.is--rounded
不是
div.listing
的直接子级。请尝试以下方法:

$('div.listing > div.product--box.box--minimal > div.box--content.is--rounded > div.product--info > a').addClass('test');
或者,由于两个
a
元素都在同一个容器中,并且将被该选择器捕获,因此您可以将其简化为:

$('div.listing a').addClass('test');
我想使用清单的第一个子项,例如,
product--box-box--minimal
——有多个子项

$('div.listing > div.box--content.is--rounded > div.product--info > a').addClass('test');

<div class="product--box box--minimal" data-page-index="" data-ordernumber="XXXX">
    <div class="box--content is--rounded">
        <div class="product--info">
            <a href="XXXXX" title="XXXXX" class="product--image">
                <span class="image--element">
                    <span class="image--media">
                        <img srcset="XXXXX.jpg, XXXXXX2x.jpg 2x" alt="KXXXX" title="XXX">
                    </span>
                </span>
            </a>
            <div class="product--rating-container"></div>
            <span>XXX</span>
            <a href="hXXXXXXX" class="product--title" title="XXXX">
                XXXXXX
            </a>
            <div class="product--price-info">
                <div class="product--price-outer">
                    <div class="product--price">
                        <span class="price--default is--nowrap">XXXXXX</span>
                        <div style="display:none;">ab</div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>
在这种情况下,您可以使用
:first
选择器:

$('div.listing > div.product--box.box--minimal:first > div.box--content.is--rounded > div.product--info > a').addClass('test');

// or, more simply:

$('div.listing div.product--box.box--minimal:first a').addClass('test');
这将尝试匹配作为类框成员的div元素--content.is--rounded,它是作为类列表成员的div的子级

……但这并不存在

在HTML
div.box中--content.is--rounded
div.listing
grand子项

您可能至少应该在当前使用子组合器(
)的某些位置使用子组合器(

这将尝试匹配作为类框成员的div元素--content.is--rounded,它是作为类列表成员的div的子级

……但这并不存在

在HTML
div.box中--content.is--rounded
div.listing
grand子项


您可能至少应该在当前使用子组合器(
)的某些位置使用子组合器(
)。

对不起,我误解了您的问题,合适的选择器应该是:

$('body > div > div > div > div > a.product--image')

对不起,我误解了你的问题,合适的选择应该是:

$('body > div > div > div > div > a.product--image')

根据您的要求,您可以使用以下任何一项

//children()方法返回所选元素的所有直接子元素。

$("div.listing").children("a").addClass('test')
$("div.listing").find("a").addClass('test') 
//find()方法返回所选元素的子元素,一直到最后一个子元素。

$("div.listing").children("a").addClass('test')
$("div.listing").find("a").addClass('test') 

根据您的要求,您可以使用以下任何一项

//children()方法返回所选元素的所有直接子元素。

$("div.listing").children("a").addClass('test')
$("div.listing").find("a").addClass('test') 
//find()方法返回所选元素的子元素,一直到最后一个子元素。

$("div.listing").children("a").addClass('test')
$("div.listing").find("a").addClass('test') 

div.box--content.is--rounded不是div.listing的直接后代。将>替换为spaces@LDJ-是的。问题是它不是它的孩子。对不起,如果我没有提到这一点。但是还有不止一个框--content是--rounded,我想选择第一个。div.box--content.is--rounded不是div.listing的直接后代。将>替换为spaces@LDJ-是的。问题是它不是它的孩子。对不起,如果我没有提到这一点。但还有不止一个框——内容是四舍五入的,我想选择第一个框。“直接子选择器”——它被称为“子组合器”(过去被称为“子选择器”)。我不知道“direct”这个词是从哪里来的,选择器不区分“direct”和其他任何东西(“收养的”可能?),但我更正了我的问题,对不起。我想使用列表中的第一个子项,例如product--box--minimal--有多个。@Rorymcrossan非常感谢!没问题。如果答案有助于“直接子选择器”(directchildselector)——它被称为“子组合器”(过去被称为“子选择器”),不要忘记接受它。我不知道“direct”这个词是从哪里来的,选择器不区分“direct”和其他任何东西(“收养的”可能?),但我更正了我的问题,对不起。我想使用列表中的第一个子项,例如product--box--minimal--有多个。@Rorymcrossan非常感谢!没问题。如果答案有用,请不要忘记接受1)这与任何事件无关,更不用说
单击
2)
live()
很久以前就被弃用了,你真的不应该再使用它了。即使如此,
on()
在这里一点也不相关。这个问题与您的回答无关。1)这与任何事件无关,更不用说
单击
2)
live()
很久以前就被弃用了,您真的不应该再使用它了。即使如此,
on()
与此无关。此问题与您的回答无关。