如何定位两个元素之间的文本
How to target text between two elements
更新如下
我正在尝试针对代码镜像的输出,并向模块元素添加一些自定义事件和样式。
Codemirror 这样显示以下代码。
<div><module type="content"></module><span>can contain other data</span></div>
在 DOM 中,它在一系列跨度之间呈现。
<pre>
<span class="cm-tag"><div><module</span>
<span class="cm-attribute">type</span>
=
<span class="cm-string">"content"</span>
<span class="cm-tag">></module><span></span>
can contain other data
<span class="cm-tag"></span></div></span>
</pre>
我遇到的问题是尝试为整个模块元素添加黄色背景,但由于"="部分位于两个元素之间,我不确定如何使用选择器定位它。
这就是我现在所拥有的,但由于它不包括元素之间的文本,因此背景颜色存在间隙。
$('.cm-tag:contains("<module")').each(function () {
var $closingElement;
$(this).nextAll().each(function () {
if ($(this).text() == "></module>") {
$closingElement = $(this).next();
return false;
}
});
var $module =$(this).add($(this).nextUntil($closingElement));
$module.addClass('module');
});
有人对如何实现这一目标有建议/想法吗?
更新通过使用wrapAll jquery方法,我能够部分到达那里,但是可见的结果仍然不太正确。现在,空格和等号字符将从包装的元素中删除并放置在其之后。
<modulename"content"id"1234"/> = =
function hilightModules() {
$('.cm-tag:contains("<module")').each(function() {
var $module = $(this);
$(this).nextAll().each(function() {
$module = $module.add($(this));
// closing element
if ($(this).hasClass('cm-tag')) {
return false;
}
});
$module.wrapAll('<span class="module" />').click(function() {
// Do stuff
});
});
};
若要向内容文本添加单击处理程序,最好的办法是在 CodeMirror 包装器元素上注册一个鼠标向下处理程序,并在该处理程序中确定单击的内容是否是您要查找的内容。内容元素可能随时更改,您不想注册大量处理程序。
至于突出显示内容,我建议使用覆盖模式(有关示例,请参阅 http://codemirror.net/demo/mustache.html(,而不是尝试使用 DOM mging(出于上面列出的原因(。
就像@Raminson说的,你可以定位<pre>
标签,使背景跨越整个部分。这是你要找的吗?
http://jsfiddle.net/ckaufman/CSzny/
相关文章:
- 操作放置在画布上的元素之间的连接
- DOM元素和angular元素之间的主要区别是什么
- 在 JavaScript 数组中的所有元素之间穿插元素的简洁方法
- JS get元素之间的差异's属性与elem.getAttribute(attr)和elem[attr]
- Javascript集:任何覆盖元素之间比较的方法
- jqmobile列表视图中元素之间的间距相等
- 如何在两个动画画布元素之间进行通信
- 第一个元素和最后一个元素之间的连续循环
- 在元素之间导航的Javascript
- 在照片库中的两个元素之间切换样式会发生变化
- 计数元素之间的语法混淆
- jquery多次在元素之间插入html
- javascript,两个数组的相同元素之间的比较
- 3个元素之间的自动切换
- 如何使用jQuery在两个元素之间切换类
- 自定义元素之间的聚合物双向结合[包括示例]
- 使用setTimeout在创建新元素之间强制延迟
- 在javascript数组元素之间添加换行符
- 获取2个元素之间的元素
- 如何不断检查页面元素之间的冲突