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);
}