Javascript textContent返回未定义的文本
这是我的代码:Javascript textContent返回未定义的文本,javascript,jquery,syntax,Javascript,Jquery,Syntax,这是我的代码: var text1 = "↵,<strong>bla bla</strong>";//here text1 has value text1 = text1.textContent;//here it is undefined var text1=”↵,bla bla”//这里text1有价值 text1=text1.textContent//这里没有定义 为什么??如何解决它呢?text1是一个普通字符串,而不是DOM元素 如您所见,textConte
var text1 = "↵,<strong>bla bla</strong>";//here text1 has value
text1 = text1.textContent;//here it is undefined
var text1=”↵,bla bla”//这里text1有价值
text1=text1.textContent//这里没有定义
为什么??如何解决它呢?
text1
是一个普通字符串,而不是DOM元素
如您所见,textContent
是节点
对象的属性。与此相反
由于删除标记是一项非常简单的任务,因此添加一个相当大的库是没有意义的(即使只要您想对DOM做更多的工作,jQuery就非常好),下面是一种简单的方法:
var elem = document.createElement('div');
elem.innerHTML = '<strong>hi & bye</strong>';
alert(elem.textContent || elem.innerText || ''); // displays "hi & bte"
var elem=document.createElement('div');
elem.innerHTML='hi&;再见;
警报(elem.textContent | | elem.innerText | |“”)//显示“hi&bte”
text1
是一个普通字符串,而不是DOM元素
如您所见,textContent
是节点
对象的属性。与此相反
由于删除标记是一项非常简单的任务,因此添加一个相当大的库是没有意义的(即使只要您想对DOM做更多的工作,jQuery就非常好),下面是一种简单的方法:
var elem = document.createElement('div');
elem.innerHTML = '<strong>hi & bye</strong>';
alert(elem.textContent || elem.innerText || ''); // displays "hi & bte"
var elem=document.createElement('div');
elem.innerHTML='hi&;再见;
警报(elem.textContent | | elem.innerText | |“”)//显示“hi&bte”
text1
是一个字符串,而不是DOM节点
在使用DOM方法之前,您需要将HTML转换为DOM(通过使用
innerHTML
将其添加到文档中,或者通过编写/查找JS DOM解析器)
在使用DOM方法之前,您需要将HTML转换为DOM(通过使用
innerHTML
将其添加到文档中,或者通过编写/查找JS DOM解析器)
首先添加对jQuery库的引用,然后简单如下:
var text1 = "↵,<strong>bla bla</strong>";//here text1 has value
text1 = $("<div>").html(text1).text();
alert(text1);
var text1=”↵,bla bla”//这里text1有价值
text1=$(“”).html(text1.text();
警报(text1);
.您可以使用jQuery执行此类任务 首先添加对jQuery库的引用,然后简单如下:
var text1 = "↵,<strong>bla bla</strong>";//here text1 has value
text1 = $("<div>").html(text1).text();
alert(text1);
var text1=”↵,bla bla”//这里text1有价值
text1=$(“”).html(text1.text();
警报(text1);
.其他人已经给了你答案,我只想评论一下 虽然自DOM 3 Core出现以来(大约8年),大多数浏览器都实现了(MS专有)属性。因此,如果您有一个节点,您可以执行以下操作:
var theTextContent = typeof node.textContent == 'string'? node.textContent : node.innerText;
或者编写一个更健壮的函数
编辑
以下是完整的解决方案:
function getText(el) {
return el.textContent || el.innerText || '';
}
var text1 = "<strong>bla bla</strong>"
var d = document.createElement('div');
d.innerHTML = text1;
alert(getText(d)); // bla bla
函数getText(el){
返回el.textContent | | el.innerText |'';
}
var text1=“bla bla”
var d=document.createElement('div');
d、 innerHTML=text1;
警报(getText(d));//布拉布拉
其他人已经给了你答案,我只想评论一下 虽然自DOM 3 Core出现以来(大约8年),大多数浏览器都实现了(MS专有)属性。因此,如果您有一个节点,您可以执行以下操作:
var theTextContent = typeof node.textContent == 'string'? node.textContent : node.innerText;
或者编写一个更健壮的函数
编辑
以下是完整的解决方案:
function getText(el) {
return el.textContent || el.innerText || '';
}
var text1 = "<strong>bla bla</strong>"
var d = document.createElement('div');
d.innerHTML = text1;
alert(getText(d)); // bla bla
函数getText(el){
返回el.textContent | | el.innerText |'';
}
var text1=“bla bla”
var d=document.createElement('div');
d、 innerHTML=text1;
警报(getText(d));//布拉布拉
你到底想干什么@盗贼拿掉标签。你到底想干什么@ThiefMaster删除标记。@RobG可以随意使用纯JavaScript了-我只是建议一些广为人知的东西,用于保存数百行自编码。@ShadowWizard但对于这个值:↵,Tilsæ;t lidt fedt“它给了我错误。没有必要,已经有两个好答案了。代码行数不是客户非常关心的指标,也不是“更少的代码”本身的任何值。@RobG解析HTML和删除标记可能会变得非常复杂。我更喜欢用一行代码来做这件事,而不是自己花很长时间学习如何做。(最终失败)@Srcee查看我的编辑。我的原始代码将返回空字符串,没有错误。我已经修复了这个问题来处理这种情况。@RobG可以随意使用纯JavaScript了-我只是建议一些广为人知的东西,用来保存数百行自编码。@ShadowWizard但对于这个值:↵,Tilsæ;t lidt fedt“它给了我错误。没有必要,已经有两个好答案了。代码行数不是客户非常关心的指标,也不是“更少的代码”本身的任何值。@RobG解析HTML和删除标记可能会变得非常复杂。我更喜欢用一行代码来做这件事,而不是自己花很长时间学习如何做。(最终失败)@Srcee查看我的编辑。我的原始代码将返回空字符串,没有错误。我修正了这个问题来处理这种情况。IE8及以下版本不支持
elem.innerText | | elem.textContent
应该可以使用alert(elem.textContent | | elem.innerText | |“”)代码>在IE8及以下版本中不受支持elem.innerText | | elem.textContent
应该可以使用alert(elem.textContent | | elem.innerText | |“”)代码>