之前我在一个条件中检查了一行是否是这样的表中的最后一行:
$row.is(':last-child')
Run Code Online (Sandbox Code Playgroud)
哪个工作正常.
现在,我有一个要求,其中表中的某些行被隐藏 - 现在我必须检查特定行是否是表中的最后一个可见行.
我试过这个:
$row.is(':visible:last-child')
Run Code Online (Sandbox Code Playgroud)
但不是那么成功.有人有线索吗?
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,Interface和controls类是潜在有用的-并且优选地只是接口和控制.
与代码交互并在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) 我正在将一个webapp从prototype移植到jquery,我常常使用原型Down()函数.(选择给定元素的第一个子元素)
浏览JQuery-api,其中一种方法是:
原型:$('abc').down(); jquery:$('abc').children().first();
但是,由于这首先取出所有孩子并且过滤了一个过滤器,我怀疑它对这个用例是有效的.
什么是更好的方式?
如何将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中的完整示例.
给定一个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行代码.一行代码可以做到吗?
我有一个奇怪的问题,我不能使用正常的sizzle选择器来正确选择jQuery中的东西:
这两行不是一回事.
ele.children("div.a > div").addClass("badActive");
ele.children("div.b").children("div").addClass("active");
Run Code Online (Sandbox Code Playgroud)
可能重复:
如何将父元素添加到一组段落中?
我在文档中重复了以下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) 假设一个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有这样的功能吗?
我只想上一个父节点,所以我可以在父节点内部执行.find.
从某种意义上说,我想找一个姐姐.
如何测试下一个元素是否是特定类型 - 例如,我想测试图像后面的下一个元素是否也是图像.如果是这样,那么我想为该元素添加一个类
例如,如果是这种情况,那么它将触发真实并为第一张图像添加一个类......
<p></p>
<img />
<img />
<p></p>
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,它会触发错误,没有任何事情会发生......
<p></p>
<img />
<p></p>
Run Code Online (Sandbox Code Playgroud) jquery ×10
javascript ×4
closest ×1
css ×1
dom ×1
parent ×1
parent-child ×1
recursion ×1
traversal ×1