Jquery 查找不起作用

发布于 2024-10-29 22:11:12 字数 1256 浏览 1 评论 0原文

这是我的页面的 Html,我只想如果没有流行产品,那么整个 div populate_prd 应该隐藏。

<div class="popular_prd">
    <h1 class="views-heading">Popular Products</h1>
    <div class="view view-popular-products view-id-popular_products view-display-id-default boxes-bottom view-dom-id-3">
        <div class="views-admin-links views-hide">
            <ul class="links">
                <li class="0 first">
                    <a href="/admin/build/views/edit/popular_products?destination=node#views-tab-default">Edit</a>
                </li>
                <li class="1">
                    <a href="/admin/build/views/export/popular_products">Export</a>
                </li>
                <li class="2 last">
                    <a href="/admin/build/views/clone/popular_products">Clone</a>
                </li>
            </ul>
        </div>
    </div>
</div>

我使用下面的 jquery 代码来隐藏 div。

$('document').ready(function(){
if(!$('.popular_prd').find('.view-content') ) {
        $('.popular_prd').hide();
    }
    else {
    $('.popular_prd').show();
    }
});

但代码不起作用,div 仍然显示。

This is the Html for my page I just want if there are no popular products then the whole div popular_prd should hide.

<div class="popular_prd">
    <h1 class="views-heading">Popular Products</h1>
    <div class="view view-popular-products view-id-popular_products view-display-id-default boxes-bottom view-dom-id-3">
        <div class="views-admin-links views-hide">
            <ul class="links">
                <li class="0 first">
                    <a href="/admin/build/views/edit/popular_products?destination=node#views-tab-default">Edit</a>
                </li>
                <li class="1">
                    <a href="/admin/build/views/export/popular_products">Export</a>
                </li>
                <li class="2 last">
                    <a href="/admin/build/views/clone/popular_products">Clone</a>
                </li>
            </ul>
        </div>
    </div>
</div>

I used the following jquery code to hide tthe div.

$('document').ready(function(){
if(!$('.popular_prd').find('.view-content') ) {
        $('.popular_prd').hide();
    }
    else {
    $('.popular_prd').show();
    }
});

But the code is not working the div is still showing up.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

等风来 2024-11-05 22:11:12
$('.popular_prd').find('.view-content')

这只会返回一个永远不会计算为 false 的 jQuery 对象

,您需要检查它的长度

if(!$('.popular_prd').find('.view-content').length) {
  //no products.
}
$('.popular_prd').find('.view-content')

This will just return a jQuery object which never evaluates to false

You need to check the length of it

if(!$('.popular_prd').find('.view-content').length) {
  //no products.
}
浮世清欢 2024-11-05 22:11:12

find 并不像您想象的那样工作。它看起来像而不是

if(!$('.popular_prd').find('.view-content') ) {

你的意思是

if(!$('.popular_prd').find('.view-content').length ) {

事实上,你甚至不需要在这里查找...

if(!$('.popular_prd .view-content').length ) {

底线,jQuery 选择器不返回 true 或 false,而是一个集合。测试长度以查看是否找到任何内容。

find doesn't work the way you think. It looks like instead of

if(!$('.popular_prd').find('.view-content') ) {

what you mean is

if(!$('.popular_prd').find('.view-content').length ) {

In fact, you don't even need find here...

if(!$('.popular_prd .view-content').length ) {

Bottom line, jQuery selectors don't return true or false, but a set. Test the length to see whether anything was found.

我不会写诗 2024-11-05 22:11:12

或者使用 length 属性

$('document').ready(function(){
if(!$('.popular_prd').find('.view-content').length) {
        $('.popular_prd').hide();
    }
    else {
    $('.popular_prd').show();
    }
});

Or use length property

$('document').ready(function(){
if(!$('.popular_prd').find('.view-content').length) {
        $('.popular_prd').hide();
    }
    else {
    $('.popular_prd').show();
    }
});
三岁铭 2024-11-05 22:11:12

您的 HTML 中没有 view-content 类。

You don't have a view-content class in your HTML.

汹涌人海 2024-11-05 22:11:12

上述 HTMLview-content 类未包含在 popular_prd 类的 div 中

view-content class is not contained in the div with class popular_prd in the above HTML

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文