• ベストアンサー

javascriptで文字列を書き換えたい

Greasemonkeyを使って、とあるサイトの文字列を書き換えたいのですが、javascriptがまったくわからないためどう記述していいのかわかりません。 <li>  ├<input id="aaa" type="checkbox" value="2048" name="bbb">  └<label for="aaa">ccc</label> ソースを確認するとこうなっています。 この「ccc」を「ddd」に書き換えるにはどのように記述すればいいのでしょうか? firefoxですので、innertextは使えないみたいです。

  • fsh17
  • お礼率96% (76/79)

質問者が選んだベストアンサー

  • ベストアンサー
  • q-ue
  • ベストアンサー率75% (12/16)
回答No.1

こんな感じです。 document.querySelector('#aaa+*').textContent='ddd';

fsh17
質問者

お礼

ありがとうございます。できました!感謝です!

関連するQ&A

  • formなしでPOSTデータを送信・受信

    formを使わずに application/x-www-form-urlencoded 型のデータを送信させることってできるのでしょうか? あるサイトで、 <form method="post" action="/xxx"> <input type="hidden" value="1" name="aaa"/> <input type="text" value="2" name="bbb"/> <input type="checkbox" value="3" name="ccc" /> </form> のようなformがあったときに、 POSTで送信されているデータが、通常だと aaa=1&bbb=2&ccc=3 となるはずのところが、 aaa=1&bbb=2&ccc=3&ddd=4 となっていました。 また、この値(ここでは4としました)は送信ごとに変動していました。 (なお、ヘッダ情報はすべてFirefoxのLiveHTTPheadersで確認しました。) そのページ内には、hiddenや、その他のタグすべて(aやdiv)を含めて name(およびid)がdddのものはありませんでした。 (ソースを直接確認、およびFirefoxのFire bugおよびWeb Developerで確認しました。 さらに、これらで"ddd"をページ内検索してもヒットせず、見落としはないと思います。) また、Javascript(Javaも)をすべてOFFにし、 さらにクッキーも受けつけない・キャッシュも削除・無効化 した上で送信しても、 まったく同様に上記のdddのパラメータが送信されています。 (念のため確認したのですが、これに加えて、 Javascript適用後のHTMLであるFirebugで表示されるソースも じっくり見ましたが、ここでも見つからなかったので、 Javascriptによるhiddenタグ描画という可能性はないと思われます。) Javascriptやクッキーを使用せず、 かつHTMLのフォームタグも使わずに、 ユーザーにある(動的に変動する)パラメータをもつ POST情報を送信させる方法があるのでしょうか? 抽象的で申し訳ありませんが、 何か参考になりそうなことがありましたら どうぞよろしくお願いいたします。

    • ベストアンサー
    • HTML
  • jquery リンクを付与しながら文字列を表示

    はじめまして、jqueryでの質問です。 下記内容のhtmlを作成しています。 <body> <div class="main-wrap"> <div class="main-left"> <ul class="box_sample"> <li><input type="checkbox" id="list-a" name="list-a">「サンプル会社A」 <label for="list-a" class="light">aaa@aaa.com</label></li> <li><input type="checkbox" id="list-b" name="list-b">「サンプル会社B」 <label for="list-b" class="light">bbb@bbb.com</label></li> <li><input type="checkbox" id="list-c" name="list-c">「サンプル会社C」 <label for="list-c" class="light">ccc@ccc.com</label></li> </ul> </div> <div class="main-right"> <div id="show"><p></p></div> <p class="send">メール送信</p> </div> </div> <script type="text/javascript"> var $c = $('input[type="checkbox"]'); $c.bind('change', function(){ var add = ''; $c.each(function(index, value) { if (this.checked){ //チェックと同時にlabelのfor属性の値をテキストとして表示する add += ($('label[for="' + this.name + '"]').html() + '; '); } }); //id="show p"内に挿入 $('#show p').html(add); }); </script> </body> ・チェックボックスにてメールアドレスをチェック → チェックしたメールアドレスをdiv#showに表示 上記まではできたのですが、表示したメールアドレスに<a href="mailto:aaa@aaa.com;bbb@bbb.com;・・・"></a>を付与したいのですがどういった記述をすればいいでしょうか。 動的に変化するメールアドレスを取得する方法がうまくいかず悩んでおります。 ぜひご教示お願いいたします。 ※mailtoは個別ではなく、全体にかけたいと思います。(チェックしたアドレスすべてに同時送信するため) ・理想は<p class="send">メール送信</p>をクリックした際に、mailtoを起動したいです。 ・上記が難しければ、mailtoで囲んだ状態で表示させられればと思います。→アドレスクリックでメーラー起動。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • checkboxクリックされていないidを取得

    <form id="chkform"> <input type="checkbox" name="check" value="aaa" id="aaa">aaa <input type="checkbox" name="check" value="bbb" id="bbb">bbb <input type="checkbox" name="check" value="ccc" id="ccc">ccc                   ・                   ・                    ・ <input type="checkbox" name="check" value="zzz" id="zzz">zzz </form> チェックボックスの複数の項目の内、チェックされていない全てのIDを取得する方法を教えてください。 よろしくお願いいたします。

  • 大量のチェックボックス状態取得について

    質問させてください。 以下のようなHTML構造で連続している場合、 ID内全体のチェックボックスの状態を取得し、未チェックの物を非表示するにはどのようにすれば一番処理速度が速いのでしょうか? <div id="hoge1"> <ul> <li> <ul class="Parents"> <li class="child"><input type="checkbox" name="AAA"></li> <li class="child"><input type="checkbox" name="BBB"></li> <li class="child"><input type="checkbox" name="CCC"></li> <li class="child"><input type="checkbox" name="DDD"></li> </ul> </li> <li> <ul class="Parents"> <li class="child"><input type="checkbox" name="AAA"></li> <li class="child"><input type="checkbox" name="BBB"></li> <li class="child"><input type="checkbox" name="CCC"></li> <li class="child"><input type="checkbox" name="DDD"></li> </ul> </li> ~~~~~~~~~~~~    ※繰り返し ~~~~~~~~~~~~ </ul> </div> 現在はjQueryで$ (ul.Parents li.child)で全体をラップし、for文のループ内で$eq()で1件毎chekedを参照し、.hide()を行っています。 動作自体は問題ないのですが、処理速度の遅さが気になっています。 速い方法でればjQueryを使用しない方法でもかまいません。 どうかよろしくお願い致します。

  • phpでのメールフォームの作成について

    HTMLで <form action="mail.php" method="post"> <input name="aaa" type="checkbox" id="aaa" value="AAA" checked> <input name="bbb" type="checkbox" id="bbb" value="BBB" checked> <input name="ccc" type="checkbox" id="ccc" value="CCC" checked> </form> として、次に進むボタンを押すとmail.phpに飛び mail.phpでは、チェックされたものだけを表示したいのですが、どうすればよいでしょうか? もし、AAAとBBBが選ばれたら あなたが選んだのは AAA、BBBです。 と表示したいです。そのあとにメールフォームを続けるつもりです。 ご教授よろしくお願いします。

    • 締切済み
    • PHP
  • javascript・JSP関連

    理解できないことがあったので質問させていただきます。 javascriptで定義した変数をJSPに返すことはできますか? 例えば、 JSPで <select name="" id="aaa" onchange="bbb();"> javascriptで function bbb(){ var ccc = document.getElementById('aaa'); ddd = ccc.options[ccc.selectedIndex].value; //選択された項目の値を取得する } dddの変数をJSTL(標準タグライブラリ)の <c:set var="eee" value="ココに返す"> みたいなことは、できませんでしょうか? かなり簡潔に書いてしまいましたが、 ご理解して頂いた方は解答・返答の程、よろしくお願いします。

  • JavaScriptで選択問題作成(3)

    お世話になります。 以前ここで質問をさせてもらった件で不具合が出来たのでまた質問をさせてもらいます。 以前のスレはこれです。 http://okwave.jp/qa/q9170301.html ここで教えてもらった通りに作成していたのですが、以下のような感じです。 <!DOCTYPE html>  <meta charset="utf-8"> <style> fieldset.q ul { list-style: none; } </style> <body> <h1>問題</h1> <fieldset class="q">  <legend>Q1. 九州の県は次のうちどれですか?</legend>  <ul>   <li><label><input type="checkbox" name="q1" value="true">福岡</label>   <li><label><input type="checkbox" name="q1" value="false">岡山</label>   <li><label><input type="checkbox" name="q1" value="false">山形</label>   <li><label><input type="checkbox" name="q1" value="true">長崎</label>   <li><label><input type="checkbox" name="q1" value="true">熊本</label>   <li><label><input type="checkbox" name="q1" value="false">新潟</label>   <li><label><input type="checkbox" name="q1" value="false">山口</label>   <li><label><input type="checkbox" name="q1" value="true">鹿児島</label>   <li><label><input type="checkbox" name="q1" value="true">佐賀</label>   <li><label><input type="checkbox" name="q1" value="false">青森</label>   <li><label><input type="checkbox" name="q1" value="true">宮崎</label>   <li><label><input type="checkbox" name="q1" value="false">千葉</label>  </ul>  <input type="button" value="解答">  <input type="hidden" name="q1" value=""> </fieldset> <p>  <input type="button" value="リセット">  <input type="button" value="終了"> <script> function check (e) {  var fieldset = e.parentNode;  var seikai = fieldset.querySelectorAll ('input[type="checkbox"][value="true"]');  var kaitou = fieldset.querySelectorAll ('input[type="checkbox"]:checked');  var hidden = fieldset.querySelector ('input[type="hidden"]');  var kotae;    if (seikai.length === kaitou.length) {   hidden.value = 'true';   alert ('正解です。');  }  else {   hidden.value = '';   kotae = Array.prototype.map.call (seikai, function (e) {    return e.parentNode.textContent;   }).join (', ');   alert ([    '不正解です。',    '答えは、'+ kotae + 'です。'   ].join ('\n'));    } } function ending () {  var es0 = document.querySelectorAll ('fieldset.q input[type="hidden"]');  var es1 = document.querySelectorAll ('fieldset.q input[type="hidden"][value=""]');  alert ([   '問題数は、'+ es0.length + 'です。',   '間違いは、' + es1.length + '問あります。'  ].join ('\n')); } function reset () {  var es = document.querySelectorAll ('fieldset.q input[type="hidden"]');  Array.prototype.forEach.call (es, function (e) { e.value = ''; }); } function listener (event) {  var e = event.target;    if ('button' === e.type)   switch (e.value) {   case '解答' :    check (e);    break;      case 'リセット' :    reset ();    break;      case '終了' :    ending ();    break;   } } reset (); document.addEventListener ('click', listener, false); </script> ここでなぜか 福岡 長崎 熊本 鹿児島 佐賀 宮崎にチェックを入れて解答したら もちろん正解になります。 その後に長崎のチェックを外してかわりに山形にチェックを入れて解答したらなぜか正解になります。もちろん山形はfalseにしています。 しかし福岡  山形 長崎 熊本 鹿児島 佐賀 宮崎にチェックを入れた状態で 解答をすると不正解になります。 何故でしょうか? 教えてください

  • javascriptでのテキストボックス制御

    javascriptを使用して 特定のテキストボックスを動的に enable←→disableを切り替えたく、様々なホームページを見ながら試行錯誤して、下記ソースまで辿りつきましたが、うまく動かなくて困っています。 どうかご教示ください。よろしくお願いします。 現状:チェックをいれると enable→disableになるが、外すと戻らない。 目標:同上+チェック外すと最初disableも含めて、enableになる。 <html> <head> <script language="javascript" type="text/javascript"> function autochk(f){ for(var i=0;i<f.form.length;i++){ if (f.form.elements[i].className=="ko"){ if (f.form.elements[i].checked){ //checked チェックが入っていたら f.form.elements[i].disabled = false; // 入力不可, 無効化 }else{ f.form.elements[i].disabled = true; // 入力可能,有効化 } } } } </script> <style type="text/css"> <!-- ul li { list-style: none; } label { margin-right: 10px; width:200px; float: left; } --> </style> </head> <body> <form> <ul> <li><input type="checkbox" name="oya" value="1" onclick="autochk(this);">チェック</li> <li><label>無効→チェック→無効→有効</label><input type="text" name="ko1" class="ko" value="1" disabled></li> <li><label>有効→チェック→無効→有効</label><input type="text" name="ko2" class="ko" value="1"></li> <li><label>有効→チェック→そのまま</label><input type="text" name="other1" value="1"></li> <li><label>有効→チェック→無効→有効</label><input type="text" name="ko3" class="ko" value="1"></li> <li><label>有効→チェック→無効→有効</label><input type="text" name="ko4" class="ko" value="1"></li> <li><label>有効→チェック→そのまま</label><input type="text" name="other2" value="1"></li> </form> </ul> </body> </html>

  • セレクトボックスの値を増やしたい

    お世話になります。 セレクトボックスのOPTION値を増やしたいのですが、何か良い方法はないでしょうか。 実現したいことは、ボタンを押したときにテキストボックスの値をセレクトボックスの最下部に表示したいということです。 <INPUT TYPE="text" NAME="add_txt" VALUE=""> <SELECT NAME="lst"> <OPTION VALUE="aaa">aaa <OPTION VALUE="bbb">bbb <OPTION VALUE="ccc">ccc </SELECT> <INPUT TYPE="button" NAME="ent" VALUE="実行"> ------------------ この状態からtextに"ddd"という値を入れて実行ボタンを押した後、 <SELECT NAME="lst"> <OPTION VALUE="aaa">aaa <OPTION VALUE="bbb">bbb <OPTION VALUE="ccc">ccc <OPTION VALUE="ddd">ddd </SELECT> このような状態にしたいのですが、なにか方法はありますか。 ご存知の方いましたら、回答お待ちしています。

  • CSVに外部テキストファイルを列として追加する方法

    こんにちは。 CSVファイル(base.csv)の先頭列に、別のテキストファイル(add.txt)の中身を新規の列として挿入したいと考えているのですが、よい方法がわかりません。。。 どうのような方法を使えば対応することができるでしょうか? どうぞよろしくお願いいたします。 ■CSVファイル(master.csv) title,developer_name,seller_name,primary_genre_name,application_url AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE AAA,BBB,CCC,DDD,EEE ■テキストファイル(add.txt) id 000 111 222 333 ↓ ■目標としたファイル(master.csv) id,title,developer_name,seller_name,primary_genre_name,application_url 000,AAA,BBB,CCC,DDD,EEE 111,AAA,BBB,CCC,DDD,EEE 222,AAA,BBB,CCC,DDD,EEE 333,AAA,BBB,CCC,DDD,EEE

専門家に質問してみよう