Javascript 返回并从HTML字符串中删除元素
我将HTML传递回一个ajax调用。在HTML中,我想去掉一个元素并将其HTML存储在一个变量中。我试过:Javascript 返回并从HTML字符串中删除元素,javascript,jquery,html,Javascript,Jquery,Html,我将HTML传递回一个ajax调用。在HTML中,我想去掉一个元素并将其HTML存储在一个变量中。我试过: request.success(function(results){ var timer = $(results).find('#timer').html(); // returns undefined var timer = $('#timer', results); // returns element but not content resu
request.success(function(results){
var timer = $(results).find('#timer').html(); // returns undefined
var timer = $('#timer', results); // returns element but not content
results = $(results).remove('#timer'); // doesn't remove element
console.log(timer);
});
我需要在元素本身上运行正则表达式搜索吗?这可能会扩大
如果我将我的HTML(结果)记录在控制台中,我会得到:
e.fn.init[11]
0: div#timer
1: text
2: comment
3: text
4: div.pagination.top
5: text
6: comment
7: text
8: div#postContainer
9: text
10: comment
length: 11
__proto__: Object[0]
编辑
结果
似乎是DOM
元素,而不是jquery对象,索引
从0
开始。根据控制台返回的内容,应能够根据其各自的索引访问任何结果
项,例如$(结果)。get(4)
应返回div.pagination.top
获取计时器html
var timer = $(results).get(0);
timerContents = timer.innerHTML;
从结果中删除#计时器
var result = $.makeArray( results );
result.splice(0, 1);
$(results).find(“#timer”).html()
应该可以工作。你确定HTML中有计时器,而且里面只有一个,并且有一些内容吗?100%-如果我$(“#content').HTML(results)
,它会显示在那里。这不一定是通用的-它确实有效,但也可以。你能旋转它来为任何元素工作吗?此外,我还需要将其从结果中删除。@SparoHawk如果我将innerHTML
更改为.html()
我会得到错误未捕获的类型错误:Object#没有方法“html”
@Howdy\u McGee可能需要将计时器
移动到索引>0
才能成为孩子
@guest271314您是对的,我忘了jQuery的.get()
返回DOM对象而不是jQuery对象。我会将代码从get()
改为eq()
,然后:var timer=$(results).eq(0).html()
。这很有效,谢谢您的帮助。我觉得真正的问题是,find/html之所以不起作用,是因为,正如您所说,它需要是某个东西的孩子。我把它放在post容器中,可以很好地使用find/html/remove函数。