Tag: 儿童

jQuery获得最深层次的文本节点兄弟

我有div可能包含这样的文本: My text Some more text 或者像这样 Here’s a chunk of text 或者任何其他组合,但最终级别将包含可能会或可能不会被分隔的文本。 (是一个包含单个节点的span ?还是同一级别的两个兄弟?) 在第一种情况下,我想要的最深的孩子的文字是: My text Some more text 在第二: Here’s a chunk of text 我的观点是 – 无论最深层次是什么,我都希望所有兄弟姐妹都达到这个水平。 有帮助吗? 编辑 我不能简单地使用$(‘p’).text()因为这将只返回文本,我需要编辑然后返回相同的兄弟 ,同时保留它们的样式。 所以,例如,如果我有 Here’s some text 我做$(‘p’).text()然后我会得到“这里有一些文字”。 现在当我在一个变量中操作这个文本时,比如说changedText (其中保留了 ),我怎么能把它放回原来的位置呢? 我不能简单地做 $(‘p’).text(changedText); 我也不能做$(‘p’).html(changedText’); 因为和格式将丢失。 这就是为什么我只想通过选择div最深层次的文本节点来访问所有文本,让我们说在$textNodes 。 这样我就可以简单地做$textNodes.text(changedText); 同时保留文本节点父节点的结构和风格。 那可能吗?

jQuery:只包装第一个和第二个孩子,而不是其他孩子

在我的实际代码中: 我需要生产: 我正在玩包裹,wrapAll和孩子,但我卡住了。 提前致谢。 哇,谢谢! 还有一件事,如果在我的实际代码中,我有: 我如何生产: 谢谢。

jQuery:计算可见元素 – 效率/速度问题

我有一些代码工作正常,但它变得太慢: HTML: 我有一个包含大约50个ul元素的容器。 每个ul元素都有一个h4标题,后跟一系列li元素。 如果没有可见的线元素,该函数会隐藏标题。 使用Javascript / jQuery的: function show_or_hide_headings() { $(‘#container’).children(‘ul’).each(function (i) { var $this = $(this), $h4 = $this.children(‘:first’); if ($this.children(‘li:visible’).length) { $h4.show(); } else { $h4.hide(); } }); } 在我改变了li元素的本质之前,它的工作非常可接受。 每个li现在都是一个包含 icon text 的迷你表。 它现在需要2秒钟才能完成,而之前的工作时间不到半秒。 (该表用于停止文本环绕图标。) 我承认我不太明白为什么在每个li添加额外的元素会减慢DOM处理的速度,因为我使用.children选择器只能深入到一个DOM层。 我也尝试过: $(‘#container’).find(‘h4’).each(function (i) { var $this = $(this); if ($this.siblings(‘li:visible’).length) { $this.show(); } else { […]

在div中包装子元素的范围

所以我试图在div中包含一系列子元素,以便在组中操作它们; 试图将每个小组定位在不同的地方。 场景是我有一个随机生成li标签的列表,无论出现多少,我需要分别操作每一组十个。 为了解决这个问题,我使用了一份书面清单: Hello Stuff Stuff Stuff Stuff Stuff Stuff Stuff Stuff Stuff Stuff Stuff2 Stuff2 Stuff2 Stuff2 Stuff2 Stuff2 Stuff2 Stuff2 Stuff2 Stuff2 Stuff3 Stuff3 Stuff3 Stuff3 Stuff3 Stuff3 Stuff3 Stuff3 Stuff3 Stuff3 现在,我已经能够使用以下方法轻松地将孩子们包裹在div中。 $(“ul li ul li:nth-child(n+11)”).wrapAll(“”); 但这当然不是我需要的。 这是我正在处理的代码。 var count = $(“ul li ul li”).length; for(var c = 11; c<=count;c+=10){ $("ul […]

jQuery搞清楚父母是否已经失去了“焦点”

我一直坚持要弄清楚下拉菜单键盘可以访问的逻辑。 HTML的结构如此(为了清晰起见,使用额外的类名称): Link 1 Sub Link 1 Sub Link 2 Link 2 Sub Link 1 Sub Link 2 链接1和链接2,当hover时,将显示子菜单列表(下拉菜单)。 我有一些jQuery和jQuery hoverIntent插件可以正常工作。 问题是这只适用于鼠标。 接下来的挑战是通过键盘使其工作。 我可以轻松地将焦点事件添加到顶级链接,然后触发辅助菜单: $(‘ul.primaryMenuItem a:first’).focus([call showMenu function]) 这很好。 要关闭菜单,一个选项是,当打开另一个菜单时,检查是否已经打开另一个菜单,如果是,则关闭它。 这也很好。 但是,如果你打开了最后一个菜单,那么它就会失败。 由于您没有标记到另一个菜单,这个菜单保持打开状态。 挑战在于弄清楚如何/何时关闭菜单以及需要的逻辑(jQuery)来弄清楚它。 理想情况下,当焦点位于页面上的元素上时,我会关闭菜单,而不是任何菜单的子元素。 逻辑上,我正在寻找这个: $(‘li.primaryMenuItem’).blur([close $(this).find(‘ul.popUpMenu’)) 但是,您不能这样做,因为LI实际上没有焦点,而是其中的锚标记。 有什么建议? 更新: 也许是一个更好/更简单的问题提问方式: 通过jQuery,有没有办法“观察”以查看焦点是否移动到特定对象的所有子节点之外?