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

次のような正規表現を使用して、すべての ID を取得しようとする HTML 文字列が返されます。

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 に答える