我正在使用android webview并实现一些我需要集成javascript的功能。我是javascript的新手请告诉我如何获取段落id(每个段落的ID在选择中)。更多细节:
就像我有数据一样 -
<p id="01">hhh dhghdg
<span id="1.1">dada</span>
<span id="1.2">dgsdd</span>
</p>
<p id="02">dsdgs dhgd hdhd
<span id="2.1">dada</span>
<span id="2.2">dgsdd</span>
</p>
所以你选择了一些数据,即“hhh dhghdg dsdgs”,所以这个数据属于多个段落p1和p2,所以我想用javascript获取段落的id。
请告诉我如何获得这个。
答案 0 :(得分:1)
PPK有一个非常详细的帖子: http://www.quirksmode.org/dom/range_intro.html
其中描述了范围对象。我以前没有这样做,而是你需要使用的东西:
window.getSelection()
哪个应返回一个选择对象,您可以从中获取一个范围对象,该对象将包含所有选定的元素(如上面的链接所述)
从扫描MDN上的文档: https://developer.mozilla.org/en-US/docs/DOM/window.getSelection
您将获得一个HTML字符串,您可以尝试使用正则表达式从中获取所有ID,如下所示:
var underSelection = window.getSelection().getRangeAt(0);
var idsRegEx = /#\s(id|class)="[^"]+"/;
var idMatches = idsRegEx.match(underSelection);
//then clean and do something with the ids
我没有测试任何这个,但我希望它能让你开始。
编辑:其他信息 如果您正在使用jQuery,那么您可以将选择加载到jQuery对象中并通过执行以下操作来获取所有ID:
var IDs = [];
$(underSelection).find("p").each(function(){ IDs.push(this.id); });
答案 1 :(得分:0)
你必须使用
document.documentElement.id
或
document.getElementsByTagName('HTML')[0].id