标签: jquery-traversing

jQuery - 检查所选行是否是表中的最后一个可见行

之前我在一个条件中检查了一行是否是这样的表中的最后一行:

$row.is(':last-child')
Run Code Online (Sandbox Code Playgroud)

哪个工作正常.

现在,我有一个要求,其中表中的某些行被隐藏 - 现在我必须检查特定行是否是表中的最后一个可见行.

我试过这个:

$row.is(':visible:last-child')
Run Code Online (Sandbox Code Playgroud)

但不是那么成功.有人有线索吗?

javascript css jquery jquery-selectors jquery-traversing

7
推荐指数
1
解决办法
4035
查看次数

在jQuery.find()中跳过选择器的递归?

TL; DR:我如何得到像find()这样的动作,但阻止某个选择器的遍历(不是完全停止,只是跳过)?

解答: $(Any).find(Selector).not( $(Any).find(Mask).find(Selector) )

有许多真正伟大的答案,我希望我可以更多地分配赏金点数,也许我应该为这些中的一些做出50 pt奖励; p我选择Karl- AndréGagnon 's因为这个答案设法让findExclude不需要一条,稍长,一条线.虽然这使用了三个查找调用和一个重度不过滤器,但在大多数情况下,jQuery可以使用非常快速的实现来跳过大多数find()的遍历.

下面列出了特别好的答案:

falsarella:我的解决方案有很好的改进,findExclude(),在许多情况下都是最好的

Zbyszek:一种类似于falsarella的基于过滤器的解决方案,在效率方面也很出色

贾斯汀:一个完全不同但可管理和功能性的解决方案来解决问题

每一种都有其独特的优点,值得一提.

我需要完全下降到一个元素并比较选择器,将所有匹配的选择器作为数组返回,但是当遇到另一个选择器时跳过下降到树中.

选择路径图 编辑:用我网站上的一些替换原始代码示例

这是一个消息论坛,可能有回复消息组嵌套在任何消息中.
但请注意,我们不能使用消息或内容类,因为该脚本也用于论坛之外的其他组件.只InterfaceGroup,Interfacecontrols类是潜在有用的-并且优选地只是接口和控制.

与代码交互并在JS Fiddle中查看它,感谢Dave A,这里在查看JavaScript控制台时单击按钮,可以看到控件类每个级别的.Interface嵌套被绑定一个额外的时间.

Visual A,论坛布局结构:

    <li class="InterfaceGroup">
        <ul class="Interface Message" data-role="MessagePost" >
            <li class="instance"> ... condensed ... </li>
            <li class="InterfaceGroup"> ... condensed ...</li>
        </ul>
        <ul class="Interface Message" data-role="MessagePost" >
            <li class="instance"> ... condensed ... </li>
        </ul>
        <ul class="Interface Message" data-role="MessagePost" >
            <li class="instance"> ... condensed …
Run Code Online (Sandbox Code Playgroud)

javascript recursion jquery traversal jquery-traversing

6
推荐指数
1
解决办法
2718
查看次数

JQuery相当于原型Down() - 函数

我正在将一个webapp从prototype移植到jquery,我常常使用原型Down()函数.(选择给定元素的第一个子元素)

浏览JQuery-api,其中一种方法是:

原型:$('abc').down(); jquery:$('abc').children().first();

但是,由于这首先取出所有孩子并且过滤了一个过滤器,我怀疑它对这个用例是有效的.

什么是更好的方式?

jquery jquery-traversing

5
推荐指数
1
解决办法
4689
查看次数

在我的插件中使用jQuery的end()

如何将jQuery对象的堆栈复制到另一个jQuery对象,这样end即使返回完全不相关的对象,我也可以在我的插件中使用?例:

$(myselector)
    .next()             // Destructive operation
        .doSomething()
    .end()              // Goes back to "myselector"
    .doSomethingElse(); // Works fine!

$.fn.myPlugin = function() {
    return $(unrelated); // No stack, can't call "end" on it
};

$(myselector)
    .myPlugin()         // Destructive operation
        .doSomething()
    .end()              // Goes back to nowhere, since the stack is empty
    .doSomethingElse(); // Doesn't work
Run Code Online (Sandbox Code Playgroud)

我想修改$(unrelated)对象以包含this堆栈,所以第二个例子可以工作.这是jsFiddle中的完整示例.

jquery jquery-traversing

5
推荐指数
1
解决办法
98
查看次数

遍历表列-jQuery

给定一个3乘3表,我想为第3列的所有单元格添加一个类.

我试过了

$( 'td:eq(3)' ).addclass('special');
$( 'td:eq(5)' ).addclass('special');
$( 'td:eq(8)' ).addclass('special');
Run Code Online (Sandbox Code Playgroud)

但问题是编写3行代码.一行代码可以做到吗?

javascript jquery jquery-traversing

5
推荐指数
2
解决办法
1019
查看次数

为什么$("div> div")的工作方式不同于$("div").children("div")?

我有一个奇怪的问题,我不能使用正常的sizzle选择器来正确选择jQuery中的东西:

这两行不是一回事.

ele.children("div.a > div").addClass("badActive");
ele.children("div.b").children("div").addClass("active");
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/wGvEu/1/

jquery jquery-selectors jquery-traversing

4
推荐指数
1
解决办法
104
查看次数

如何在jQuery中包装具有不同类名的DIV标签?

可能重复:
如何将父元素添加到一组段落中?

我在文档中重复了以下HTML块

<!-- first block -->
<div class="first">
   My first div
</div>
<div class="second">
   My second div
</div>

<!-- second block -->
<div class="first">
   My first div
</div>
<div class="second">
   My second div
</div>

...
Run Code Online (Sandbox Code Playgroud)

如何用jQuery包装Divs以获得这样的结果HTML ...

<!-- first block -->
<div class="container">
   <div class="first">
      My first div
   </div>    
   <div class="second">
      My second div
   </div>
</div>

<!-- second block -->
<div class="container">
   <div class="first">
      My first div
   </div>    
   <div class="second">
      My second div
   </div>
</div>

...
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom parent-child jquery-traversing

3
推荐指数
1
解决办法
9408
查看次数

如何使用jQuery选择最接近的元素(不能是这个的父元素)?

假设一个html文档:

<html>
  <head>
  </head>
  <body>
    <li id="eee">
      <li>aaa</li>
      <span>bbb</span>
        ...
          <div>
            <button id="ccc">ddd</button>
          </div>
        ...
    </li>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

使用$('#ccc').closest('li')jQuery将选择<li id="eee">...</li>- 最近的祖先<button id="ccc">.是否有可能选择<li>aaa</li>"真正"最接近的<li>元素<button id="ccc">(因此,它不一定是祖先,但足以成为其中一个祖先兄弟)?

更新:

有效的HTML(特别为@PSL家伙,已经删除了他的评论):

<html>
  <head>
  </head>
  <body>
    <div id="eee">
      <div>aaa</div>
      <span>bbb</span>
      <ul>
        <li>fff</li>
        <li>
          <button id="ccc">ddd</button>
        </li>
      </ul>
    </li>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

如何获得<div>aaa</div>不使用该parent()函数,但使用smth.喜欢trueClosest('div')考虑祖先的兄弟姐妹,祖先和兄弟姐妹?

我只是想知道,如果jQuery有这样的功能吗?

jquery parent closest dom-traversal jquery-traversing

3
推荐指数
1
解决办法
3062
查看次数

在Jquery中,我如何上升父节点?

我只想上一个父节点,所以我可以在父节点内部执行.find.

从某种意义上说,我想找一个姐姐.

jquery jquery-traversing

2
推荐指数
1
解决办法
159
查看次数

在jQuery中测试Next Element

如何测试下一个元素是否是特定类型 - 例如,我想测试图像后面的下一个元素是否也是图像.如果是这样,那么我想为该元素添加一个类

例如,如果是这种情况,那么它将触发真实并为第一张图像添加一个类......

<p></p>
<img />
<img />
<p></p>
Run Code Online (Sandbox Code Playgroud)

但是,在这种情况下,它会触发错误,没有任何事情会发生......

<p></p>
<img />
<p></p>
Run Code Online (Sandbox Code Playgroud)

jquery jquery-traversing

2
推荐指数
1
解决办法
371
查看次数