Javascript 从<;中的值中删除类;输入>;标签

Javascript 从<;中的值中删除类;输入>;标签,javascript,jquery,html,Javascript,Jquery,Html,我有一个标记,其值是一些HTML。我想删除任何具有“emphasis”类的,但仍保留中的内容。我也不想删除任何其他s 示例如下: 这: .emphasis{ 背景:橙色; 字体大小:粗体; } 删除类尝试: function remove_emphasis_class (){ var answer = document.querySelector('#answer').value; var div = document.createElement("div");

我有一个
标记,其值是一些HTML。我想删除任何具有“emphasis”类的
,但仍保留
中的内容。我也不想删除任何其他
s

示例如下:

这:

.emphasis{
背景:橙色;
字体大小:粗体;
}



删除类
尝试:

function remove_emphasis_class (){
        var answer = document.querySelector('#answer').value;
    var div = document.createElement("div");
    div.innerHTML = answer;
        var selector = div.querySelector('.emphasis');
    var newContent = selector.innerHTML;
    div.querySelector('.emphasis').outerHTML = newContent;
    console.log(div.innerHTML);
}
基本思想

//使用字符串而不是读取输入值aka var str=$(“.foo”).val();
var str=“2+5=7”;
//将字符串转换为html
var temp=$(“”).html(str);
//找到跨度并将其展开
临时查找(“.emphasis”).contents().unwrap();
//获取不带跨度的html字符串
var updated=temp.html();
//展示它
控制台日志(更新)

一种方法是,在输入值中可能存在多个带有
强调
类的span元素,这种方法可以是这样的

var tempDir=document.createElement(“div”),
inp=document.getElementById(“答案”),
els2del,
content=“”;
tempDir.innerHTML=inp.value;
els2del=tempDir.queryselectoral(“span[class='emphasis']”);
对于(var i=0;i

最好将其转换为html,查询它,删除它,然后将输入值设置回原位。按照编写的方式,html不会呈现..这是无效的html,
class
的开头引号关闭了
value
属性的值,剩下的内容将被解析为一团乱麻…@epascarello:你能给出一些关于如何将其转换为HTML并查询它的指导吗?你首先需要解决这个问题:
——你将HTML放入你的
属性的
值中?这应该做什么?这真的很接近!理想情况下,我不希望有空的
部分。我已经用你的函数更新了我的fiddle(),我们如何删除空的跨度?
<input type="hidden" name="answer" id="answer" value="<div class="fraction_display"><span class="numer_display">21</span><span class="bar_display">/</span><span style="border-top-color: green;" class="denom_display">23</span></div>"`
function remove_emphasis_class (){
        var answer = document.querySelector('#answer').value;
    var div = document.createElement("div");
    div.innerHTML = answer;
        var selector = div.querySelector('.emphasis');
    var newContent = selector.innerHTML;
    div.querySelector('.emphasis').outerHTML = newContent;
    console.log(div.innerHTML);
}