繁体   English   中英

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

[英]How to remove a DOM element or select from a $(this).html() in jQuery?

我正在尝试在html元素(▲(▲)和▼(▼))中插入插入符号。

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

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

哪个返回:

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

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

此外,如果我想选择实际的插入符号以进行比较,该怎么做?

更新

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

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

得到:

undefined

您要删除跨度吗?

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

如果我想从此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();

演示 -移除跨度


此外,如果我想选择实际的插入符号以进行比较,该怎么做?

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

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

//or

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

演示 -从跨距插入符号


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

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

要么...

#sort-caret元素可能不是什么都方面存在this的。

同样,尽管没有相关代码,也很难说出this是什么,而没有所有相关HTML,就很难说出该元素在查询时是否存在,或者该元素是否应该放在该上下文中。

要删除dom元素并仅获取文本,请执行以下操作:

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

演示

并从DOM本身删除跨度:

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

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

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

尝试这个

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

DEMO

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM