我试图在一个html元素中得到插入符号,▲(▲)和▼(▼)。
所以我使用过(它在一个单独的函数中
console.log($(this.html()))
返回:
Phone<span id="sort-caret">▲</span>
现在,如果我想完全从这个html元素中删除跨度我该怎么做?
此外,如果我想选择实际的插入符用于比较,我该怎么做?
更新:
只是为了使答案更具相关性。如何从html中选择插入符号:
console.log($('#sort-caret', this).html());
给出:
undefined
答案 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)