のすべてのノードのXPathの情報をキャッチするために、単純なDOMパーサ機能を使用してい
、HTMLは次のとおりです。
<div>
<div>Everyday People</div>
<div>My name is ACE</div>
<div>Hello world</div>
</div>
を保存するためにDOMの解析します配列arr
でXPath情報:
<script type="text/javascript" src="js/jquery/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="js/jquery/js/xpath-selector.js"></script>
<script type="text/javascript">
function get_XPath(elt)
{
var path = '';
for (; elt && elt.nodeType == 1; elt = elt.parentNode)
{
var idx = $(elt.parentNode).children(elt.tagName).index(elt) + 1;
idx > 1 ? (idx='[' + idx + ']') : (idx='');
path = '/' + elt.tagName.toLowerCase() + idx + path;
}
return path;
}
var arr = Array();
htmlDoc = document;
x = htmlDoc.documentElement.childNodes;
for (i=0; i<x.length; i++)
{
arr.push(get_XPath(x[i]));
}
</script>
後のスクリプトでIは、表示隠れたり続きを変更するようないくつかの機能を実行するためにarr
に格納された値を使用しますノードの数。上記のスニペットで
<script>
for(i=0;i<arr.length;i++)
{
//catch the object reference with the XPath info
$(arr[i])
}
</script>
、私は、オブジェクトを取得していますが、私のようなもののためにそれを使用するオブジェクト参照を取得できませんよ:任意の助けを大幅に歓迎されるであろう
$(arr[i]).text();
。誰でもjQuery XPathセレクタに取り組んでいますか?
私はこのソリューションを知っていますが、オブジェクトへの参照を格納するのがxpath informtaion ..よりもリソースを消費するのではないかと疑問に思っていました。文書が巨大ならば、オブジェクト参照を格納することはリソースに課税され、私は正しいですか?私はjavascriptのエキスパートではないので、あなたの意見を共有してください。 – Annibigi
XPathのオブジェクトへの参照は、オブジェクト参照自体を格納するよりも*ウェイ*のリソースを消費します。オブジェクト参照は、標準的なXPath文字列と比較して小さいです。もう一度 - あなたは本当に何をしようとしていますか? – Tomalak
(ここではメモリ消費量だけを指摘していますが、XPath文字列を再帰的に作成する処理時間でさえも、jQueryがそれらを再度解析する必要があります) – Tomalak