重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

現在、javascriptとgreasemonkeyを勉強中なのですが、以下のソースでp要素の文字列?にある一部分を取り出して、
他サイトに繋がるリンクを作成したいと思っています。

XPathを使用して、タグ自体は取得できたのですが、サンプルソースの「ほげほげ」部分はどうしたら、取得できるのでしょうか?
XPathを使用しなくても取得できるでしょうか?

また、「ほげほげ」から○○部分を取り出したいのですが、取り出したい物はページごとに違うのでどのようなコードを書けばいいか分かりません。
しかし前後の文字列は一定です。

サンプルソース
<html>
<body>
<div><p>ほげほげ○○</p></div>
 :
 :

ほげほげ部分は、実際はクエリにたいに「search?p=hogehoge&type=&id=○○」となっています。
説明不足でわかりにくいとは思いますが、ご教授よろしくお願いします。

A 回答 (2件)

pタグが取れているのなら、その textContent プロパティで、タグに囲まれた文字列が取れます。



var s="search?p=hogehoge&type=&id=○○";
の○○を取り出すのは、
var i=s.indexOf("&id=");
var marumaru=a.substr(i+4)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

教えられたtextContentで無事取得できました。
サンプルコードも提示していただき、改めて勉強不足を痛感しました。
しかし、なんとか自分がしたかったgreasemonkeyができました。

本当にありがとうございました。

お礼日時:2012/03/22 23:30

もっと簡単な判別条件が他にあるのかも知れませんが、質問文からだけでは確定できないので…




p要素が変数elementに取得できていると仮定して、以下のような感じでしょうか。

var search, s, pair, i, value=null;

search = element.textContent || element.innerText;
if(search && (search=search.match(/\?(.+)$/))){
search = search[1].split("&");
for(i=0; search[i];){
pair = search[i++].split("=");
if(pair[0] === "id") value = pair[1];
}
}

alert(value);
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

一応notnotさんの回答で目的の結果が得られましたので、申し訳ありませんがnotnotさんをベストアンサーにさせていただきました。

正規表現を使った方法も今後のコードを書く場合の参考にしたいと思います。
ありがとうございました。

お礼日時:2012/03/22 23:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!