获取 span 元素的内容

11
如何获取 span 标签的内容? 我希望这个方法是使用原生JavaScript实现的,而不是jQuery。
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>

谢谢您


你在25分钟前提出了这个问题。频繁发布类似的内容会导致你被禁言,特别是因为你的问题与主题无关且价值不大。 - user1864610
你本可以使用 <input> 并使用 .value 获取值,这样可以避免麻烦。 - Joseph
5个回答

17

来试一下:

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

1
感谢您没有给出令人困惑的答案 ;) - Oliver-H-Miller

11

您可以使用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>

谢谢!我会尝试的 :D - Oliver-H-Miller
textContent非常适合这个。谢谢! - Jake

3

这里有一个问题:

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

你从未将输入框的文本赋值给任何变量。
按照上面的模式,你可以这样做:
var txt = document.getElementById('myInput'),
    txt = text.text();

第二个变量更新之前的变量'txt',以保存原始'txt'变量的文本内容,该变量是一个选择器。
你也可以这样做(纯JavaScript,jsfiddle):
var txt = document.getElementById('myInput').innerHTML;

//or

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

2

与其使用...

text.text();

尝试使用...

text.innerHTML;

我只发现在使用jQuery选择器时,.text()方法才有效。
 $('#myInput').text();

0
var text = (document.getElementById("myInput")).innerHTML

或者简写形式:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接