如何在没有id和类的情况下获取当前元素
How can get current element without id and class?
我使用一个可编辑的QWebView
并在上面写一些文本。我想让文本光标指向当前元素,并做一些更改。例如,文本光标位于没有任何Id或类的<p>
标记中。例如,我想得到这段文字,并将其显示设置为"无"。
如何获取没有任何Id或类的当前元素
我尝试过:this.style.display="none"
不起作用,但当我尝试document.getElementsByTagName('p')[0].style.display="none"
时,它起作用。我不知道怎样才能得到当前元素。
指出我只想用javascript而不是jquery来实现这一点。并且没有任何点击等。这可能吗?我该怎么做?
execCommand是如何工作的?例如execCommand justifyRight如何获取当前元素?
这是我的代码:
QWebFrame *frame = p->webView->page()->mainFrame();
QString js = QString("this.style.display='none'");
frame->evaluateJavaScript(js);
感谢
在可编辑网页的情况下,理想情况下,我们希望能够随时询问QWebFrame
中的QWebElement
是插入符号。然后我们可以用C++代码调整这个元素。
不幸的是,根据文件,没有提供这样的方法。
无论如何,webkit的javascript中有一个变通方法,因为我们可以使用window.getSelection()
访问用户选择或插入符号在DOM中的位置。以下是一些代码,可以在所选内容上方找到最近的<p>
标签,并根据需要更改其样式:
QString js=
" var node = window.getSelection().getRangeAt(0).startContainer;"
" while (node) {"
" if (node.nodeName.toUpperCase()=='P') {"
" node.style.display='none';"
" break;"
" }"
" node=node.parentNode;"
" }" ;
QVariant res = page()->mainFrame()->evaluateJavaScript(js);
您可能想将其推广为将节点类型和样式作为参数,并可能对其进行一些测试(我不是JS专家),但我相信原理是合理的。
相关文章:
- 如何在不需要单击按钮的情况下获取选项的值
- 如何在没有回调的情况下获取有关元素的信息
- 在不使用sort()的情况下获取HTML LI元素的副本
- Javascript如何在不使用画布的情况下获取鼠标位置
- Javascript在没有jQuery的情况下获取X父节点
- Rails/JS-在不刷新页面的情况下获取变量
- jQuery在不刷新页面的情况下获取每个A标记的值
- 在没有jquery的情况下获取iframe中的特定内容
- AJAX/JS:是否可以在没有提交按钮和刷新页面的情况下获取输入文本的值
- 如何在不使用事件的情况下获取元素的 pageX 和 pageY
- 角度 - 在不使用 ng-repeat的情况下获取数据长度
- AngularJS:在不修改ng模型的情况下获取选择标签
- 我可以在没有对象函数调用的情况下获取(可能是计算的)属性值吗?
- 如何在选中数组复选框的情况下获取数组文本框的验证
- 索引数据库,如何在不重新加载页面的情况下获取更新的数据
- 如何在没有元素的情况下获取文件引用对象
- 如何在没有jQuery的情况下获取事件目标
- JavaScript:在没有画布的情况下获取 ImageData
- 在没有解析 JSON 的情况下获取高图表数据
- 如何在没有图像的情况下获取链接