質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1107閲覧

文字列の置き換えがうまくいかない

kobotyann

総合スコア67

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2018/06/13 20:51

現在、対話型AIを作っているのですが、そのユーザーがコメント(呟いた)時に、「最新」と表示し、前のコメント(呟き)の「最新」をクリアしたいのですがうまくいきません。

ソースコード

html

1<head> 2<style type='text/css'> 3.box1 { 4 /* divのcss */ 5} 6.font1 { 7 margin: 0; 8 padding: 0; 9 font-family: Consolas; 10 color: #aaa; 11 margin: 2em 0; 12} 13</style> 14<script> 15function display(String){ 16 var mozi=document.getElementById('obj1').innerHTML; 17 mozi="<div class='box1'>new<font class='font1' size='2px'>"+String+"</font></div>"+document.getElementById('obj1').innerHTML; 18 mozi=mozi.replace("font color='red'<>最新</font>",""); /* 「最新」をクリアし、最新のコメントに「new」 のフラグを立てる*/ 19 mozi="<div class='box1'>new<font class='font1' size='2px'>"+String+"</font></div>"+document.getElementById('obj1').innerHTML; 20 mozi=mozi.replace("new", "<font color='red'>最新</font>");/* 先ほど立てたnewを「最新」に置き換える */ 21 document.getElementById('obj1').innerHTML=mozi; 22 /* ここからAIがユーザーの呟きを受け取る */ 23}; 24</script> 25</head> 26<body> 27<button type='button' OnClick="display(f1.t1.value);">話す</button> 28<form name='f1'><textarea name='t1'>test</textarea></form> 29<div id='obj1'></div> 30</body>

うまくいかないこと

html

1<script> 2mozi=mozi.replace("font color='red'<>最新</font>",""); 3</script>

としたのにも関わらず、なぜか「最新」がクリアされず、すべてのコメントが「最新」となってしまいます。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/06/13 22:01

タグに「JavaScript」を追加しておいてください。
guest

回答1

0

ベストアンサー

ざっとしか読んでませんけど、JavaScriptで入れようとしているhtmlおかしいですね。

js

1mozi=mozi.replace("font color='red'<>最新</font>","");

html

1font color='red'<>最新</font>


正しくはこうならなきゃいけないので

html

1<font color='red'>最新</font>

こう

js

1mozi=mozi.replace("<font color='red'>最新</font>","");

ただ、そもそもfontはhtml5で廃止なので、別のタグ(spanとか)に置き換えを検討してください。

もっと言えばですが、[ <font color='red'>最新</font> ]全体を空文字に置き換えるのではなくclassとか振っておいて要素ごと削除の方がスマートかなと。
(新しく要素を入れる場合も同様)

投稿2018/06/13 22:08

編集2018/06/13 22:08
m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問