- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在循环属于 frag
的 span 元素类(class)。我想检测当前所在的frag元素是否是属于frag
的a span元素的最小儿子/孙子/孙子(从左到右)类并属于 cond
类,并且在其文本中有“if”或“else if”
contenteditable div(文本区域)
if( ((b>0) && (b<10)) || b==15 )
HTML 等效项
<div id="board">
<div>
<span class="frag cond">if<span class="openParen bm1">(</span> <span class="frag cond"><span class="openParen bm2">(</span><span class="frag cond"><span class="openParen bm3">(</span><span class="frag">b</span>>0<span class="closeParen bm3">)</span></span> && <span class="frag cond"><span class="openParen bm4">(</span><span class="frag">b</span><10<span class="closeParen bm4">)</span></span><span class="closeParen bm2">)</span></span> || <span class="frag">b</span>==15 <span class="closeParen bm1">)</span></span>
</div>
</div>
(顺便说一句,我的系统就像一个代码编辑器,所以我使用的是 contenteditable div)在这里,我想检测我是否在第三个 b
.
byossarian帮助了我:
var $elem = $('.frag').eq(fragNum);
var validAncest = $elem.parents('.cond').filter(function(i){
return /^\s*(if|else\s+if)/.test($(this).text());
}).filter(function(i){
var generations = 0,
$elemCrawl = $('.frag').eq(fragNum);
while ($elemCrawl[0] && $elemCrawl[0] !== this) {
generations++;
$elemCrawl = $elemCrawl.parent();
}
if ($elemCrawl[0] && generations < 4) {
return true;
}
});
查找元素的所有祖先,然后过滤一次以缩小范围以“if”或“else if”开头。然后,它将这些元素过滤为原始元素的 parent 、祖 parent 或曾祖 parent (代数 < 4)。
要检查的条件是:
if (validAncest.length && !$elem.nextAll('.frag').length) {
alert('target acquired');
}
它检查是否至少有一个有效的祖先(validAncest.length),并且原始元素是其直接父元素的最后一个子元素,该子元素具有“frag”类(!$elem. nextAll('.frag').length)
问题
直接父元素也应该是带有“if”或“else if”的元素的最后一个子元素/孙元素
所以从上面的例子来看,第一个 b
已经在 3 号给我警报了 b
更新应该在第二个 b
时弹出警报不在(b<10)
最佳答案
尝试将 validAncest
更改为:
var validAncest = $elem.parents('.cond').filter(function(i){
return /^\s*(if|else\s+if)/.test($(this).text());
}).filter(function(i){
var generations = 1,
$elemCrawl = $('.frag').eq(fragNum).parent();
while ($elemCrawl[0] && $elemCrawl[0] !== this) {
if (!$elemCrawl.is(':last-child')) {return false;}
generations++;
$elemCrawl = $elemCrawl.parent();
}
if ($elemCrawl[0] && generations < 4) {
return true;
}
});
这应该包括:
关于javascript - 检测当前所在的元素是否是元素的最小儿子/孙子/孙孙子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18864758/
file.xml 示例。 我更喜欢使用elementtree来解析。根节点获取为 tree=xml.etree.El
有什么好的方法可以直接将 SIGUSR 发送给孙子?例如。我有一些进程树: 0 / \ 1 2 \ 3 并且需要从0发送一个信号到3。 我
我正在使用lxml ,使用html库的模块。 如何获取包含具有某些特征的元素的元素? 例如: Welcome other Bye Bye another 如何选择 包含 Wel
我将直接切入,简短且具有描述性: C++、Windows API 我正在使用 CreateProcess 创建子进程以运行外部(命令行)应用程序。我已经建立了超时,如果到那时子进程还没有返回正常执行,
我有一个 XML 需要解析,这对我来说非常棘手。 1234 FOO ... 我想遍历此 XML 并在 b
我有一个父 div,单击它会显示一个子 div,再次单击父 div 将切换该子 div 并再次隐藏它。我在那个子 div 中有一个开关切换,它将在场景后面用作复选框。我的代码的问题是,当我点击那个开关
我有一个这样的数据路径 events -KntTJCVBtbrb79dHemC dateStamp: 1498747689858 admin: "rPxwIzE
我正在寻找一种将属性更改事件从孙子级传播到其父级的正确方法。假设我们有一些树结构,当其中一个叶子的某些属性发生变化时,应该通知这棵树的根。我想,一种方法是将属性更改监听器从节点添加到其子节点,然后将事
我有一个 Bash 脚本(Bash 3.2,Mac OS X 10.8)可以并行调用多个 Python 脚本,以便更好地利用多个内核。每个 Python 脚本都需要很长时间才能完成。 问题是,如果我在
我有一个名为 Device 的对象。 Device 可以有一个父 Device。一个 Device 也可以有 n 个子 Devices。 我有一个下拉列表,其中显示了所有可选择的设备。我可以很容易地获
我正在尝试使用此 cron 作业每隔一周运行一个脚本。 (/ect/crontab) 45 8 * * mon root expr `date +%U` % 2 >/dev/null || /home
我正在从事 Backbone/Marionette 项目。该项目实现了一种在从服务器加载数据后将数据缓存在本地内存中的方法。因此,可以在项目内随时随地访问数据。 这让我想知道在我的案例中填充数据以查看
我是一名优秀的程序员,十分优秀!