【问题标题】:Jquery :not selector doesn't work with style on classJquery:not 选择器不适用于类样式
【发布时间】:2017-02-26 07:39:12
【问题描述】:

我正在尝试为我的网站制作产品页面,不幸的是,我无法在 Javascript 中隐藏除特定页面之外的任何其他显示。

首先,我将每 24 个 div 包裹在单个 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 中用于将变量从 System 移动到 HTML,所以每当我获得 GET 请求的值时,我将变量传输到 HTML,然后与双花括号一起使用大括号 {{}}。

【问题讨论】:

  • {{ currentpagen }} 中的双花括号是干什么用的?
  • +gus27 在我使用的框架中,变量从系统到模板( HTML )使用双花括号,所以它是 GET 请求的值,例如,当用户输入链接 @ 987654331@,我将变量 1 从系统传输到 HTML 并与双花括号一起使用。

标签: javascript jquery html css django


【解决方案1】:

您应该注意您的模板系统正在处理您的 JavaScript 代码。

恕我直言,这可能会更好:

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

结果应该是这样的:

【讨论】:

  • 感谢您的回答,不幸的是由于某种原因它仍然无法正常工作,为什么会这样?
  • @ShellRox 很难说没有看到页面的结果源代码。查看浏览器中的 HTML/JavaScript 源代码 - 如果错误不明显,请将其发布在您的问题中。
  • 我现在正在处理tonskins.com,这段代码完全没有错误,脚本在源代码中,view-source:mtonskins.pythonanywhere.com/?browse=1 脚本在末尾源代码。
  • @ShellRox 据我从 URL 中可以看出,它可以工作:p1 显示 display:flex,另一个 p2 和 p3 显示 display:none
  • @gu27 但是由于某种原因 p1 仍然隐藏,也许还有一些可见性?
猜你喜欢
  • 2012-10-09
  • 2016-05-05
  • 2014-09-27
  • 2021-02-16
  • 2019-02-16
  • 2019-12-05
  • 2021-03-25
  • 2021-06-11
  • 1970-01-01
相关资源
最近更新 更多