如何删除DOM元素或从jQuery中的$(this).html()中选择?

时间:2014-04-22 07:24:52

标签: javascript jquery html

我试图在一个html元素中得到插入符号,▲(▲)和▼(▼)。

所以我使用过(它在一个单独的函数中

console.log($(this.html()))

返回:

Phone<span id="sort-caret">▲</span>

现在,如果我想完全从这个html元素中删除跨度我该怎么做?

此外,如果我想选择实际的插入符用于比较,我该怎么做?

更新

只是为了使答案更具相关性。如何从html中选择插入符号:

console.log($('#sort-caret', this).html());

给出:

undefined

4 个答案:

答案 0 :(得分:2)

您要删除范围吗?

$("#sort-caret").remove();

答案 1 :(得分:1)

  

如果我想完全从这个html元素中删除跨度   我该怎么做?

使用jQuery remove(),您可以选择并删除它,类似于:

// you can drop the ",this" if context is not important and no repeated ids are in your HTML.
$('#sort-caret', this).remove();

DEMO - 删除跨度


  

此外,如果我想选择实际的插入符号用于   比较我怎么能这样做?

.html()包含范围的HTML内容。将其放在变量中供以后使用,类似于:

var caret = $('#sort-caret', this).html();

//or

var caret = $('#sort-caret').html();

DEMO - 从span

获取插入符号

为什么您的代码console.log($('#sort-caret', this).html());无效,如果没有所有相关的HTML 脚本,则无法判断undefined

运行代码时,#sort-caret元素可能不存在...

...或

#sort-caret元素可能不存在于上下文this中。

但是,如果没有相关代码,很难说出this是什么,如果没有所有相关的HTML,很难判断该元素在查询时是否存在,或者应该在该上下文中第一名与否。

答案 2 :(得分:1)

删除dom元素并获取文字:

 var s = 'Phone<span id="sort-caret">▲</span>';
 var r = /<(\w+)[^>]*>.*<\/\1>/gi;
 console.log(s.replace(r,""));

<强> Demo

从DOM本身移除范围:

 $('#sort-caret').remove(); 

要在当前上下文中获取范围文本,请使用:

 $(this).find('span').html()

答案 3 :(得分:1)

试试这个

$(this).find('#sort-caret').remove()
  

DEMO