1

我正在使用 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。

请告诉我如何得到这个。

4

2 回答 2

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); });
于 2013-04-05T10:00:13.697 回答
0

你必须使用

document.documentElement.id

或者

document.getElementsByTagName('HTML')[0].id
于 2013-04-05T09:59:29.033 回答