gpt4 book ai didi

jQuery - 前一个节点 - 没有公共(public)父节点

转载 作者:行者123 更新时间:2023-12-01 00:25:43 26 4
gpt4 key购买 nike

使用 jQuery 我想从给定节点中查找前一个节点。前面的节点和给定的节点可能没有相同的父节点!请检查以下片段:

<div class="container">
<div id="sec1">
<p>Some text</p>
<p><b>Some</b> text<</p>
<p>Some <b>more</b> text</p>
</div>
<div id="sec2">
<p>just a text</p>
</div>
<div id="sec3">
<p>another <span id="cursorPos1"></span>text</p>
<p><b>yet</b> another<span id="cursorPos2"></span> text</p>
</div>

假设当前给定节点是$("span#cursorPos1") ,而我想定位的是前面的粗体文本,那么结果应该是“<b>more</b> ”。这里,给定的节点位于div#sec3中。 ,目标前一个节点位于 div#sec1 .

如果当前给定节点是 $("span#cursorPos2") ,那么前面的粗体文本就是“<b>yet</b>”。这里,给定节点和目标前一个节点都在同一个 div#sec3 中。 .

基本上,根本不应该考虑层次结构。从给定的节点,选择器应该简单地找到前面的匹配项。

请告诉我如何做到这一点。

谢谢
斯里坎特

最佳答案

这不是一个很好的解决方案,但我认为这可以解决问题。想法是找到所有粗体标签和光标元素,在结果数组中查找光标的位置,然后返回其之前的元素。

只是把这些放在一起,可能还有更好的方法。如果你使用这个,一些错误检查可能也是合适的。

prevBold = function(myId) {

var boldAndMe = $('#' + myId + ', b').toArray();
var me = $('#' + myId).get(0);
var myPos = boldAndMe.indexOf( me );

return myPos > 0 ? $( boldAndMe[myPos-1] ) : null;

}

关于jQuery - 前一个节点 - 没有公共(public)父节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3310447/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com