Javascript 使用带有text()的子字符串删除html标记?
我正在使用jQueryUI自动完成从SQL数据库中提取结果。我使用Javascript 使用带有text()的子字符串删除html标记?,javascript,jquery,jquery-ui,jquery-autocomplete,Javascript,Jquery,Jquery Ui,Jquery Autocomplete,我正在使用jQueryUI自动完成从SQL数据库中提取结果。我使用substring方法将结果描述限制为350个字符。但是,我似乎无法将.text()与子字符串一起使用来删除描述中的所有html标记。当我键入搜索词时,控制台将返回 TypeError:item.description.text不是函数 有人能告诉我应该使用什么从描述中删除html标记吗 $(function() { $( "#Search" ).autocomplete({ source: function( re
substring
方法将结果描述限制为350个字符。但是,我似乎无法将.text()
与子字符串一起使用来删除描述中的所有html标记。当我键入搜索词时,控制台将返回
TypeError:item.description.text不是函数
有人能告诉我应该使用什么从描述中删除html标记吗
$(function() {
$( "#Search" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "get.php",
dataType:"json",
data:{q:request.term},
success: function( data ) {
response($.map( data.products, function( item ) { return {
label:item.name,
category:item.category,
description:item.description.text().substring(0,350).split(" ").slice(0, -1).join(" ")
//.text() doesn't work.
}
分配数据:
}).data("ui-autocomplete")._renderItem = function(ul, item) {
var inner_html = '..........<p>'+ item.description +'...</div></div></a>';
数据(“ui自动完成”)。\u renderItem=函数(ul,项){
var internal_html='...'+item.description+'.';
问题在于
.text()
是jQuery对象(包含节点)的方法,.textContent
是节点的属性。相反,似乎item.description
是一个字符串
然后,您可以使用字符串作为其html创建DOM元素,然后使用.textContent
或.text()
。但这是一种易受攻击的做法:
$('<img src="//" onerror=alert("hacked!") />');
注意
document.implementation.createHTMLDocument
在旧浏览器上不起作用。问题在于.text()
是jQuery对象(包含节点)的一种方法,.textContent
是节点的一个属性。相反,item.description
似乎是一个字符串
然后,您可以使用字符串作为其html创建DOM元素,然后使用.textContent
或.text()
。但这是一种易受攻击的做法:
$('<img src="//" onerror=alert("hacked!") />');
注意
document.implementation.createHTMLDocument
在旧浏览器上不起作用。问题在于.text()
是jQuery对象(包含节点)的一种方法,.textContent
是节点的一个属性。相反,item.description
似乎是一个字符串
然后,您可以使用字符串作为其html创建DOM元素,然后使用.textContent
或.text()
。但这是一种易受攻击的做法:
$('<img src="//" onerror=alert("hacked!") />');
注意
document.implementation.createHTMLDocument
在旧浏览器上不起作用。问题在于.text()
是jQuery对象(包含节点)的一种方法,.textContent
是节点的一个属性。相反,item.description
似乎是一个字符串
然后,您可以使用字符串作为其html创建DOM元素,然后使用.textContent
或.text()
。但这是一种易受攻击的做法:
$('<img src="//" onerror=alert("hacked!") />');
注意
document.implementation.createHTMLDocument
在旧浏览器上不起作用。尝试将其包装到jquery对象中:$(item.description.text()..
@briangraz try$(“”)
尝试使用项.description.textContent
,而不是项.description.text()
。如果要使用.text())
,您必须将其应用于jQuery对象。@seises我刚刚尝试过,但出现了此错误TypeError:item.description.textContent未定义
@Oriol这有什么关系?如果您正在检索自动完成的选项,我认为这些选项不会被用户输入填充。请尝试将其包装到jQuery对象中:$(item.description).text()..
@BrianGlaz Try$(“”)
尝试使用item.description.textContent
而不是item.description.text()
。如果要使用.text()
,您必须将其应用于jQuery对象。@seises我刚刚尝试过,但出现了此错误TypeError:item.description.textContent未定义
@Oriol这有什么关系?如果您正在检索自动完成的选项,我认为这些选项不会被用户输入填充。请尝试将其包装到jQuery对象中:$(item.description).text()..
@BrianGlaz Try$(“”)
尝试使用item.description.textContent
而不是item.description.text()
。如果要使用.text()
,您必须将其应用于jQuery对象。@seises我刚刚尝试过,但出现了此错误TypeError:item.description.textContent未定义
@Oriol这有什么关系?如果您正在检索自动完成的选项,我认为这些选项不会被用户输入填充。请尝试将其包装到jQuery对象中:$(item.description).text()..
@BrianGlaz Try$(“”)
尝试使用item.description.textContent
而不是item.description.text()
。如果要使用.text()
,您必须将其应用于jQuery对象。@seises我刚刚尝试过,但出现了此错误TypeError:item.description.textContent未定义
@Oriol这有什么关系?如果您正在检索自动完成的选项,我想这些选项不会被用户输入填充。您能告诉我应该在哪里吗放置?它在response…{return{
中给我错误,在renderItem函数中没有任何效果。明白了!我将函数放置在success:function(data){
中,它工作了。你能告诉我应该放置在哪里吗?它在response…{return中给我错误{
在renderItem函数中没有任何效果。明白了!我将函数放置在success:function(data){
中,它可以工作。你能告诉我应该放置在哪里吗?它在响应中给我错误…{return{
在renderItem函数中没有任何效果。明白了!我将函数放置在success:function(data){
中,它可以工作。你能告诉我应该放置在哪里吗?它在响应中给我错误…{return{
在renderItem函数中没有任何效果。明白了!我将函数放置在success:function(data){
中,它就工作了。