JavaScriptで生成される文字列の削除方法

このQ&Aのポイント
  • JavaScriptのpop()メソッドを使って生成される文字列の最後の行を削除する方法について困っています。
  • DOMで改行を加えたテキストを生成し、修正のボタンを設置したいです。
  • input type button onclick="DelTxt();" で生成されたテキストの最後の行を削除する方法がうまく動作しません。
回答を見る
  • ベストアンサー

javascript 生成される文字列の削除

pop(); を使えばいいのか、他の方法があるのか 困っています DOMで改行を加えたテキストを生成していきますが 修正のボタンを設置したいと考えています。 input type button onclick="DelTxt();" で生成されたテキストの最後の行を削除、、、したいのですが うまく動きません function setChars(text) { var myTextElement = document.getElementsByName("myTEXT").item(0); if (myTextElement.value) { myTextElement.value += "\n"; } myTextElement.value += text; } 削除 functiion DelTxt(){  var myTextElement = document.getElementsByName("myTEXT") myarray[0] = new array このあとの記述がわかりません。。 pop(); を使って最後の文字列のみ削除をしたいです。 ご教授よろしくお願いいたします

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

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.1

削除したいのは、最後の文字列(最後の一文字を指す)なのか、1行なのかどちらでしょうか。追加したものをそのまま削除したいようにも読み取れますね。 まず、質問文を読み返して、まったく情報のない他者に伝わるのかどうかを吟味してください。 仮に「追加したものをそのまま削除したい」つまりは最後の行を削除する方法を考えてみます。いろいろな方法がありますが、popを使う場合は、行を配列化して、目的の要素を削除してから再び結合するといったところですね。 //行の配列化 var my_array = myTextElement.split("/n"); //最後の要素を削除 my_array.pop(); //配列を文字列に結合 myTextElement = my_array.join("/n"); //簡略化するなら以下のようなもので十分です。 funciton delTxt() {  var el = document.getElementsByName("myTEXT").item(0);  el.value = el.value.split("/n").pop().join("/n"); }

ap039219
質問者

お礼

失礼しました、追加した文言を削除したい、が やりたい事です。 ご指摘ありがとうございます。 後ほど試して見たいと思います

関連するQ&A

  • 入力された文字列からリンクタグを生成

    お世話になります。 ブラウザから、一行テキストに入力された文字列を使用してリンクタグを生成する挙動を構築していますが、肝心のリンクタグ( aタグ等 )が反映されずに悩んでいます。 普段PHPでプログラミングを行っていますので、一旦PHPで変数に置き換えたり、データベースを介したり様々な方法を試みましたが、中々うまくいかずにいます。 -- 【 JavaSの定義箇所 】 ------------- <script type="text/javascript"> <!-- function textcopy(){ var text1 = document.getElementById("text1").value; document.getElementById("text1").value = ""; text1 = document.getElementById("insert1").innerHTML + text1; document.getElementById("insert1").innerHTML = "<div>" + text1 + "</div>"; var text2 = document.getElementById("text2").value; document.getElementById("text2").value = ""; text2 = document.getElementById("insert2").innerHTML + text2; document.getElementById("insert2").innerHTML = "<div>" + text2 + "</div>"; var text3 = document.getElementById("text3").value; document.getElementById("text3").value = ""; text3 = document.getElementById("insert3").innerHTML + text3; document.getElementById("insert3").innerHTML = "<div>" + text3 + "</div>"; var text4 = document.getElementById("text4").value; document.getElementById("text4").value = ""; text4 = document.getElementById("insert4").innerHTML + text4; document.getElementById("insert4").innerHTML = "<div>" + text4 + "</div>"; var text5 = document.getElementById("text5").value; document.getElementById("text5").value = ""; text5 = document.getElementById("insert5").innerHTML + text5; document.getElementById("insert5").innerHTML = "<div>" + text5 + "</div>"; } //--> </script> -- 【 form部品の箇所 】 -------------- <form> <input type="text" id="text1" value="<a href='"> <input type="text" id="text2"> <input type="text" id="text3" value="'>"> <input type="text" id="text4"> <input type="text" id="text5" value="</a>"> <br /> <div id="insert1" style="display: inline-block;"></div> <div id="insert2" style="display: inline-block;"></div> <div id="insert3" style="display: inline-block;"></div> <div id="insert4" style="display: inline-block;"></div> <div id="insert5" style="display: inline-block;"></div> <button type="button" onclick="textcopy()">submitする</button> </form> ------------------------------- 例えば、 【 <a href='http://www.hoge.com'>テスト</a> 】の様に返したいのに、 【 http://www.hoge.com'>テスト 】と返ります。 HTMLタグは特殊文字に変換してみましたが、結果は同じでした。 因みにこの挙動がうまくいったら、type属性はhiddenにして隠し要素にするつもりでした。 恐らくこの様な面倒くさい構文より簡単な書き方があるかと思いますが、 今までJavaScript自体殆どタッチしていませんでしたので、調べながら 自分で構築してみました。 ご教示の程、どうぞよろしくお願い申し上げます。

  • javascript iframeについて

    iframeにてアンケート的な物を作成しています。 ページは13ページくらいです ボタンを押すと次のページに移動し、さらに親のテキストエリアに選択したボタンの文言が上から保存されていくようにしたいのですが ↓は子のiframe内ですが、どのようにしていいかわからなくて、、 <html> <head> <link href="./if.css" rel="stylesheet" type="text/css"> </head> しつもん1<br><br> <form name="test"> <input type="button" name="001" value="戸館"onClick="kakunin(1)";onClick="setChars('AAAA')")><br><br> <input type="button" name="002" value="集合住宅" onClick="kakunin(2)"> </form> <form name="myFORM"> <textarea name="myTEXT"rows="10"></textarea><br> <!-- ↓ ここから先はJavaScript!!! --!> <script type="Text/Javascript"> function setChars(text) { if (document.myFORM.myTEXT.value || "") { document.myFORM.myTEXT.value = document.myFORM.myTEXT.value + "\n" } document.myFORM.myTEXT.value = document.myFORM.myTEXT.value + text } function kakunin(btnNo){ if (btnNo == 1){ link = "戸館"; href = "EN002.html"; }else{ link = "集合住宅"; href = "EN002m.html"; } ret = confirm(link + "でよろしいですか?"); if (ret == true){ location.href = href; } } </script> </html> よろしくお願いいします。

  • javascriptのtextbox

    こんばんは。 <html> <body> <center> <br><br> <form name="fuji"> TEXT BOX<br> <input type="text" name="tex"> </form> <SCRIPT type="text/javascript"> var i; i="ABC" document.write("<input type='button' value='↑を変数iに代入' onClick='i=(document.fuji.tex);'>"); document.write("<br><input type='button' value='表示' onClick='document.write(i);'>"); </SCRIPT> </center> </body> </html> でテキストボックスの中身を表示させたいのですが、 上手くいきません。どうすればいいのでしょうか。 また、変数を使わずに直接テキストボックスの中身を 表示させる事はできるのでしょうか。 教えてください。

  • JavaScript text内にある文字のコピーの仕方について

    お世話になります。 現在作成中の テキスト内の文のバックスペースと テキスト内をクリアーは 下記の文となりプログラム上問題は御座いません。 <FORM name="a1"> <INPUT type="button" value="クリアー" onclick="document.a1.reset()"> <INPUT type="button" value="バックスペース" onclick="document.a1.a2.value=document.a1.a2.value.substring(0,document.b.c.value.length-1)"> <INPUT size="100" type="text" name="a2"></FORM> 出来ないのがボタンを押すとテキスト内の文字を コピーするという記述なのですが もし解られましたら お手数ですがお教え頂ければ幸いです。

  • JavaScript文字列連携に関して

    質問させて頂きます。 下記のようなテキストフォームがあったとして、submit押された時に、jsを走らせ、テキストに数値以外が入っていないかチェックしたいと考えています。 ------------------------------------------------- <input type="text" name="text_1" /> <input type="text" name="text_2" /> <input type="text" name="text_3" /> ------------------------------------------------- チェック自体は下記のような記述で行うことが出来ました。 ------------------------------------------------- if(document.form1.text_1.value.match(/[^0-9]+/)){ //文字です } if(document.form1.text_2.value.match(/[^0-9]+/)){ //文字です } if(document.form1.text_3.value.match(/[^0-9]+/)){ //文字です } ------------------------------------------------- ですが、同じif文を並べて記述したくなかったので、for文を使って記述したいと考えました。 ------------------------------------------------- for (var i=1 ; i<=3 ; i++){ if(document.form1.text_1.value.match(/[^0-9]+/)){ //文字です } } ------------------------------------------------- この時、if文内のtext_1をどのように記述すれば、text_1,text_2,text_3と変化させることが出来るでしょうか。 ※「text_ + i +」等試してみましたが、正常に動作出来ませんでした。 ご存知の方がいらっしゃいましたら、ご教授頂けると助かります。 また、質問の内容に不備な点があるかもしませんが、その際はご指摘頂けると幸いです。 よろしくお願いいたします。

  • javascript 動的フォームの追加、削除について

    JAVASCRIPTを使って、追加ボタンを押したときに、入力フォーム(textbox)を2個、3個と追加させ、入力フォーム横に設置した削除ボタンで削除ボタン横の入力フォームを削除したいと思っております。 1)delInput2()の引数でボタンごとの情報(何番目のボタンか)を渡したい。 どのようなjavascriptを書けばよいか、ご教授願えませんでしょうか。 どうぞよろしくお願い致します。 <script type="text/javascript"> var arInput = 0; var Default = arInput; function addInput() { //追加処理 arInput ++ $("#area").append('<span id=\"group'+arInput+'\"><input type=\"text\" name=\"text'+arInput+'\" value=\"入力項目'+arInput+'\" /><input type=\"button\" onclick=\"delInput2()\" name=\"button'+arInput+'\" value=\"削除'+arInput+'\" /><br></span>\n'); } function delInput() { //削除処理 $("#group"+arInput).remove(); if(arInput > Default){ arInput -- } } function delInput2() { //指定項目削除処理 } </script> <form> <fieldset id="area"> <fieldset> <input type="button" onclick="addInput()" value="一行追加" /> <input type="button" onclick="delInput()" value="一行削除" /> </fieldset> </form>

  • fileUploadオブジェクトへの値の代入 (困っています。教えてください。m(__)m)

    こんばんは。 fileUploadオブジェクトへの値の代入がどうにもこうにもできません。 いったいどうしたらいいのでしょうか?どうか助けてください。 よろしくお願いいたします。m(__)m -- <HTML><BODY> <FORM NAME="myFormF"> <INPUT TYPE="file" NAME="myFile"> <INPUT TYPE="button" value="set FILEFILE -> file" onClick="document.myFormF.myFile.value='FILEFILE'"> <INPUT TYPE="submit" onClick="alert(document.myFormF.myFile.value)"> </FORM> <FORM NAME="myFormT"> <INPUT TYPE="text" NAME="myText"> <INPUT TYPE="button" value="set TEXTTEXT -> text" onClick="document.myFormT.myText.value='TEXTTEXT'"> <INPUT TYPE="submit" onClick="alert(document.myFormT.myText.value)"> </FORM> </BODY></HTML> -- key: fileUpload object,ファイルアップロードオブジェクト,WSH,javascript

  • javascriptのonclickに関数を追加?

    現在、javascriptでinput要素に新しくonclick='hoge()'などの関数を追加したいのですができません。 色々調べたのですが、結局わからなかったので質問させていただきます。 何卒、ご教授宜しくお願いします。 ■やろうとしていること 下記ソースのボタンをどれかクリックしたら、 新しく、<input type="button" value="次へ" onclick="next()" />というのを<span>に 生成したいのですが、onclickが追加されずに困っております。 どのようにしたらよいのでしょうか?ちなみにtypeとvalueは生成されています。 <form name="test"> <input type="button" value="" id="answer_0" onclick="test(0)" /> <input type="button" value="" id="answer_1" onclick="test(1)" /> <input type="button" value="" id="answer_2" onclick="test(2)" /> </form> <span id="test2"></span> <script> function test(n) { ・・・ 中略 var nq = document.createElement('input'); nq.type = "button"; nq.value = '次へ'; nq.onclick = "next()"; document.getElementById('test2').appendChild(nq); } </script> 以上、宜しくお願い申し上げます。

  • javascriptのDOMについてなんですが・・・

    閲覧有難うございます。 JavaScriptのDOMを用いてテキストボックスを生成しようと考えているのですがうまくいきません。 <form name="form" action="index2.php"> <select id="factor" onchange="swicthForm()"> <option value="0">選んでください</option> <option value="1">1個</option> <option value="2">2個</option> <option value="3">3個</option> <option value="4">4個</option> <option value="5">5個</option> </select> </form> <br> <script type="text/javascript"> function swicthForm(){ var options = document.form.factor.value; alert(options); } } </script> を用いてSELECTでいくらを選んだかが表示することが出来ました。 alert(options)の値の分だけテキストボックスなり何なりを生成したいのですがうまくいきません。 どの様にしたらテキストボックスなどを表示できますか?

  • javascript 乱数が取得できない

    はじめまして。 一月ほど前から「パズルネット ソフィア」 http://www.pori2.net/js/number/4.html というサイトでjavascriptの基礎を学んでいるのですが、乱数 を扱う段階になって自分の作成したプログラム(以下) <html> <head> </head> <body onload="Mondai()"> <form name="quiz"> <input type="text" value="" > <input type="button" value="赤" onclick="Push(0)"> <input type="button" value="青" onclick="Push(1)"> <input type="button" value="黄" onclick="Push(2)"> <input type="button" value="緑" onclick="Push(3)"> <input type="button" value="白" onclick="Push(4)"> </form> <script type="text/javascript"> <!-- var col=new Array("red","bleu","yellow","green","white"); var Rnd; function Mondai(){ Rnd=Math.floor(Math.random() * 5 ); document.quiz.element[0].value=col[Rnd]; } function Push(num){ var n=parseInt(num); if( n==Rnd ){ Mondai(); }else{ alert("違います。"); } } // --></script> </body> </html> を実行してもテキストボックス内に何の値も表示されず 、ボタンを押しても「違います。」とだけしか出てきません。 ブラウザはfirefoxを使用しており、javascriptの設定もonに なっています。 カンマや鍵括弧などの記号にも打ち間違いがないかサンプル プログラムを参考にしながら確認してみたのですが、どこにも おかしな点はありませんでした。 サンプルプログラムは下記のとおりで、こちらは正常に実行されます。 <body onload="Mondai()"> <form name="quiz"> <input type="text" value=""> <input type="button" value="赤" onclick="Push(0)"> <input type="button" value="青" onclick="Push(1)"> <input type="button" value="黄" onclick="Push(2)"> <input type="button" value="緑" onclick="Push(3)"> <input type="button" value="白" onclick="Push(4)"> </form> <script type="text/javascript"> <!-- //色名の英単語を配列に入れる var col=new Array("red","blue","yellow","green","white"); //乱数を入れる変数 var Rnd; //テキストボックスに問題文(色名)を表示する関数 function Mondai(){ //0~4までの乱数を発生させる Rnd=Math.floor( Math.random() * 5 ); document.quiz.elements[0].value=col[Rnd]; } //正誤判定関数 function Push(num){ //引数を数字に変換 var n=parseInt(num); //正解なら次の問題を表示、間違っていたらアラートを表示する if ( n == Rnd ){ Mondai(); }else{ alert("違います!"); } } // --> </script> どなたかアドバイスをいただけないでしょうか? よろしくお願いします。