web-dev-qa-db-ja.com

スパンのコンテンツを取得する

スパンの内容を取得するにはどうすればよいですか?これらすべてをjQueryではなくVanillaにする方法を探しています

javascript(および少しのjQuery)

var swear_words_arr=new Array("bad","evil","freak");
var regex = new RegExp('\\b(' + swear_words_arr.join('|') + ')\\b', 'i' );

function validate_user_text() {
var text = document.getElementById('myInput');
text.text();

if(regex.test(text)) {
    window.location="http://www.newlocation.com";
    return false;
}

}
var myVar=setInterval(function(){validate_user_text()},1000);change

これが私のhtmlです

<div id="textArea">
<span id="myInput" contenteditable="true">kfjdkfj</span>
</div>
<br />
 <form name="form1" method="post" action="">

<textarea rows="3" cols="40" name="user_text" style="border:2 solid #808080; font-family:verdana,arial,helvetica; font-weight:normal; font-size:10pt" onclick="select_area()"></textarea>
<br />
<input type="button" value="Submit" onclick="return validate_user_text();"></form>

ありがとうございました

7
Oliver_H_Miller

これを試してみてください:

var input = document.getElementById("myInput");
var text = input.innerHTML;
14

textContent を使用できます

MDNから取得:

// Given the following HTML fragment:
//   <div id="divA">This is <span>some</span> text</div>

// Get the text content:
var text = document.getElementById("divA").textContent;
// |text| is set to "This is some text".

// Set the text content:
document.getElementById("divA").textContent = "This is some text";
// The HTML for divA is now:
//   <div id="divA">This is some text</div>
11
Joseph

ここに問題があります:

var text = document.getElementById('myInput');
text.text();

入力のテキストを変数に割り当てたことはありません。

上記のパターンに従って、次のことができます。

var txt = document.getElementById('myInput'),
    txt = text.text();

2番目の変数は、前の変数「txt」を更新して、セレクターであった元の「txt」変数のテキストを保持します。

これも行うことができます(Vanilla javascript、 jsfiddle ):

var txt = document.getElementById('myInput').innerHTML;

//or

var txt = document.getElementById('myInput').textContent;
3
Josh Beam

使用する代わりに...

text.text();

使用してみてください...

text.innerHTML;

JQueryセレクターを使用している場合にのみ.text()が機能することがわかりました。

 $('#myInput').text();
2
photodow
var text = (document.getElementById("myInput")).innerHTML

または要約形式:

var text = $('#myInput').text()
0
DevonDahon