我有这个html
<div id="editor" contenteditable="true">
This text is directly under div
<p>Some text under p tag. <span> Some under span tag</span> and this is another text</p>
<p>Another para</p>
</div>
<button>Get block level parent</button>
Javascript
function getParentBlock() {
element = document.getSelection().focusNode;
while (p = element.parentNode) {
displaystyle = window.getComputedStyle(p, null).getPropertyValue('display');
if (displaystyle == 'block') {
return p;
}
element = element.parentNode;
}
}
function alertCurrentParent() {
alert(getParentBlock());
}
btn = document.querySelector('button');
btn.onclick = alertCurrentParent;
JSFIDLE在这里:http://jsfiddle.net/shankardevy/aA8Kb/
现在,当我把光标放在文本“另一个帕拉”或双击“另一个帕拉”(在我的mac中选择整个帕拉)并单击“获取块级父级”按钮时,我得到了HTML段落元素的警报。
但是,当我将光标放在第一个段落(“p标记下的一些文本”)中并单击按钮时,我会在警报中看到“HTMLParagraphElement”。当我双击第二个段落,选择整个第一个段落,然后点击按钮,我得到“HtmlLevel”。
我希望我的代码能像第二段那样工作。i、 例如,双击句子并单击按钮,它应该显示“HTMLParagraphElement”。我该怎么做?
问题是您从父节点开始循环。选择整个段落时,其父级是DIV
。因此,从当前元素而不是父元素开始循环。
function getParentBlock() {
var element = document.getSelection().focusNode;
for (var p = element; p; p = p.parentNode) {
var style = window.getComputedStyle(p, null);
if (style) {
var displaystyle = style.getPropertyValue('display');
if (displaystyle == 'block') {
return p;
}
}
}
}
不停摆弄
你必须测试getComputedStyle
的结果,然后再调用getProperty tyValue,因为文本节点没有样式,它返回null
。
问题内容: 当显示其父元素时,是否有任何机制可显示子元素:无? 这种情况是隐藏选项卡上的验证错误。我想显示错误消息,即使该字段是隐藏的。 标记: CSS: 我猜这是不可能的,因为孩子没有上下文,但以防万一? 问题答案: 不,这是不可能的。隐藏该元素,因此不会显示任何子元素。 编辑: 这可能是沿着你想要的线,如果你能够从使用切换到。 使用此方法,您可以隐藏父元素的内容,但显示所需的特定内容。唯一需要
问题内容: 这应该真的很简单,但是我遇到了麻烦。如何获得子元素的父div? 我的HTML: 我的JavaScript: 我本来以为还是会工作,但我不断收到错误。请注意,已定义,但不是其中的某些变量。 有任何想法吗? PS我希望尽可能避免使用jQuery。 问题答案: 您正在寻找,其继承自:
本文向大家介绍使用jquery/js获取iframe父子级、同级获取元素的方法,包括了使用jquery/js获取iframe父子级、同级获取元素的方法的使用技巧和注意事项,需要的朋友参考一下 在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素、或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素 1、 格式:window.fram
问题内容: 我正在使用AJAX返回包含脚本的响应。 通过该脚本,如何确定脚本在其中运行的父元素的ID,而不将ID传递给服务器?有办法吗? 谢谢。 问题答案: 如果您为脚本分配了ID(在古老的浏览器中会爆炸),则可以尝试:
问题内容: 我很难理解如何在PHP中使用DOMElement对象。我找到了这段代码,但是我不确定它是否适用于我: 基本上,我需要在DOM中搜索特定的,之后需要提取一个非标准的(即我用JS编写并使用的非标准的),以便可以看到它的价值。原因是我需要从中获取一份,而在HTML中则需要基于重定向。如果有人可以解释一下我如何为此目的使用DOMDocument,那将有所帮助。我真的很难理解发生了什么以及如何正
问题内容: 我正在使用Java解析Xml,我想在属性值的帮助下解析元素。 例如 在这种情况下,我想使用att值解析tag1数据。我是java和xml的新手。请引导我。 问题答案: 有多种方法可以做到这一点。您可以使用xPath(示例),DOM Document或SAX Parser(示例)来检索属性值和标记元素。 这是您要求的解决方法。我从不建议使用“ hack”类型,而是使用SAX(请参见示例链