如何获取所有段落的ID?

时间:2013-04-05 09:38:59

标签: javascript android html css

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

请告诉我如何获得这个。

2 个答案:

答案 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