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