3

contentユーザーがフォームにHTMLタグを入力できるという名前のフォーム入力テキストオブジェクトから値を取得するjQuery関数があります。たとえば、ユーザーが<b>タグ付きで「Sample」と入力します。submit が起動されると、jQuery は から値を取得しますcontent

var content = $('[name=content]').val();

私の問題は、ユーザーがタグを持っている場合、タグ<b>を言うと、生のhtml文字列をレンダリングする代わりにユーザーに出力したいということです。

どうすればいいですか?どんな助けでも大歓迎です。私はjQueryが初めてです。

4

4 に答える 4

9

.val()すでに文字列を返します。
その文字列を HTML として解析せずに表示する方法を尋ねています。

コールし.text()ます。

于 2012-06-15T02:13:41.577 に答える
1

さて、ブラウザでレンダリングせずにコードを表示したいようですね。おそらく、タグを html エンティティに変換したいでしょう。

于 2012-06-15T02:23:22.727 に答える
0

jQuery がなければ、次のようにします。

document.getElementsByName('content')[0].value;

ユーザーが入力した攪拌を正確に取得します。

編集

わかりました。別の要素の innerHTML として値を書き込んでいて、マークアップではなくリテラル テキストを表示したいのです。sans-jQuery の例を続けます。

<script>
// Set the text content of an element
var setText = (function() {
    var d = document.createElement('div');
    if (typeof d.textContent == 'string') {
      d = null;
      return function(el, text) {
        el.textContent = text;
      };
    } else if (typeof d.innerText == 'string') {
      d = null;
      return function(el, text) {
        el.innerText = text;
      };
    }
}());
</script>

<input name="content">
<button onclick="
  setText(document.getElementById('d0'), 
          document.getElementsByName('content')[0].value);
">get value</button>
<div id="d0"></div>

またはSLaksが示唆するように(むしろ不可解に):

$('#d0').text($('[name=content]').val());

なぜ彼または彼女の答えになかったのかはわかりませんが。

于 2012-06-15T02:32:43.737 に答える