Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.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表达式将针对没有规定类的div_Jquery_Jquery Selectors - Fatal编程技术网

是否有一个JQuery表达式将针对没有规定类的div

是否有一个JQuery表达式将针对没有规定类的div,jquery,jquery-selectors,Jquery,Jquery Selectors,我使用tabber.js创建一个选项卡列表,然后我使用columniser函数将选项卡中的信息列出来 但是,我的jquery选择器不工作:$'div.tabberlive div.not.tabbertabhide ul'。我有$'div.tabbertab ul',我认为它可以在所有选项卡上正常工作并显示,但它列出了隐藏的选项卡并显示了它们。我希望,使它更具体的div,这是可见的,没有唯一的目标类将有所帮助 我的HTML如下所示: <div class="tabberlive">

我使用tabber.js创建一个选项卡列表,然后我使用columniser函数将选项卡中的信息列出来

但是,我的jquery选择器不工作:$'div.tabberlive div.not.tabbertabhide ul'。我有$'div.tabbertab ul',我认为它可以在所有选项卡上正常工作并显示,但它列出了隐藏的选项卡并显示了它们。我希望,使它更具体的div,这是可见的,没有唯一的目标类将有所帮助

我的HTML如下所示:

<div class="tabberlive">
  <ul class="tabbernav">...</ul>
  <div class="tabbertab "><ul>...</ul></div>
  <div class="tabbertab tabbertabhide"><ul>...</ul></div>
  <div class="tabbertab tabbertabhide"><ul>...</ul></div>
  <div class="tabbertab tabbertabhide"><ul>...</ul></div>
</div>
columniser函数是:

$(document).ready(function(){
  var size = 6,
      $ul  = $('("div.tabberlive div").not(".tabbertabhide") ul'),
      $lis = $ul.children().filter(':gt(' + (size - 1) + ')'),
      loop = Math.ceil($lis.length / size),
      i    = 0;

  $ul.css('float', 'left').wrap("<div style='overflow: hidden'></div>");

  for (; i < loop; i = i + 1) {
    $ul = $("<ul />").css('float', 'left').append($lis.slice(i * size, (i * size) + 6)).insertAfter($ul);
  }
});

我试着猜选择器,但显然失败了。。。非常感谢您的帮助

这不是好的语法

你可以使用这个:

$('div.tabberlive div:not(.tabbertabhide) ul')
或者你可以使用

$('div.tabberlive div').not('.tabbertabhide').find('ul')
允许您通过删除不需要的元素来过滤jQuery集


提供子体之间的匹配元素。

这不是好语法

你可以使用这个:

$('div.tabberlive div:not(.tabbertabhide) ul')
或者你可以使用

$('div.tabberlive div').not('.tabbertabhide').find('ul')
允许您通过删除不需要的元素来过滤jQuery集


为您提供子体之间的匹配元素。

为语法更正干杯!我不再收到任何错误,但它不再列化列表项了?如果没有目标和确切的HTML,我建议您一步一步地调试循环。但是对于你的需要来说,它肯定太复杂了。为什么你在$ul.children上使用filter:gt?显然你知道切片函数。。对于那些可能不知道的人来说,德斯特罗伊的第一个选择通常比第二个更为理想。Sizzle在收集div.tabberlive div项目时只收集与:not匹配的Decentant,并且在收集完所有div.tabberlive div项目后不会将其过滤掉。这可能对其他人的设置有用,也可能没有用处。我从fiddler为jQuery复制了呈现的代码,发现CDATA和window.load wrap在文档准备就绪时非常有用。仍然无法理解为什么它使用不太特定的jQuery选择器运行而没有这些,但需要它们来运行更特定的选择器?这可能是一个嘶嘶作响的异常现象,也可能只是我使用的站点上的一个奇怪配置。感谢@dystroy的帮助和pebbl的优化建议。为语法更正干杯!我不再收到任何错误,但它不再列化列表项了?如果没有目标和确切的HTML,我建议您一步一步地调试循环。但是对于你的需要来说,它肯定太复杂了。为什么你在$ul.children上使用filter:gt?显然你知道切片函数。。对于那些可能不知道的人来说,德斯特罗伊的第一个选择通常比第二个更为理想。Sizzle在收集div.tabberlive div项目时只收集与:not匹配的Decentant,并且在收集完所有div.tabberlive div项目后不会将其过滤掉。这可能对其他人的设置有用,也可能没有用处。我从fiddler为jQuery复制了呈现的代码,发现CDATA和window.load wrap在文档准备就绪时非常有用。仍然无法理解为什么它使用不太特定的jQuery选择器运行而没有这些,但需要它们来运行更特定的选择器?这可能是一个嘶嘶作响的异常现象,也可能只是我使用的站点上的一个奇怪配置。感谢@dystroy的帮助和pebbl的优化建议。