javascript
  • jquery
  • html
  • css
  • django
  • 2017-02-26 90 views 0 likes 
    0

    我正在尝试为我的网站制作产品页面,不幸的是我没有在Javascript中隐藏除特定页面以外的任何其他显示。Jquery:没有选择器不能在类上的样式工作

    首先,我结束了在单一div每24 div的:

    var lis = $(".products li"); 
    for(var i = 0; i < lis.length; i+=24) { 
        lis.slice(i, i+24) 
        .wrapAll("<div class='products'></div>"); 
    } 
    

    然后,我给了类的每一个对象,它的id:

    $('.products').each(function(i, obj) { 
        if (i > 0) { 
         obj.id = "p" + i 
        } 
    }); 
    

    我已如果测试可以工作,而且确实如此。

    之后,我做了GET请求,以便用户选择页面。

    {{ currentpagen }}是GET请求的值,例如,在这种情况下,1

    然后我添加的代码,那么所有其他的div会被隐藏,但当前页面之一:

    $(".products:not(#p + {{ currentpagen }})").css("display", "none"); 
        $('#p' + {{ currentpagen }}).css("display", "flex"); 
    

    ,它是行不通的,所有元素都将被隐藏,包括一个人的那不该”例如,在这种情况下,除#p1之外的所有元素应该已被隐藏。


    那么问题是什么呢?有没有更好的方法来做到这一点?编号显然工作,因为我试图改变他们的风格,但我认为这是:not选择。

    如果你想知道双曲花括号是什么,它在Django中用于将变量从系统移动到HTML,所以每当我获得GET请求的值时,我都会将变量转换为HTML,然后将它用于双花括号{{}}。

    +0

    什么是那些双花括号中'{{currentpagen}}'呢? – gus27

    +0

    + gus27从我使用的框架中,变量从系统到模板(HTML)使用双花括号,所以它是GET请求的值,例如,当用户输入链接'w.com/?browse= 1',我会将变量1从系统传输到HTML,并使用双花括号。 – ShellRox

    回答

    1

    你应该留意你的模板系统在你的JavaScript代码中做了什么。

    恕我直言,这可以更好的工作:

    $(".products:not(#p" + {{ currentpagen }} + ")").css("display", "none"); 
    

    结果应该是这样的:

    enter image description here

    +0

    感谢您的回答,不幸的是,由于某种原因,它仍然无法正常工作,为什么会这样呢? – ShellRox

    +1

    @ShellRox很难说没有看到由此产生的页面源代码。查看浏览器中的HTML/JavaScript源代码 - 如果错误不明显,请将其发布到您的问题中。 – gus27

    +0

    我现在正在使用http://tonskins.com,根本没有关于此代码的错误,并且脚本位于源代码view-source中:http://mtonskins.pythonanywhere.com/?browse = 1脚本位于源代码的末尾。 – ShellRox

    相关问题