Javascript 如何在JQuery中设置文本而不更改内部元素?

Javascript 如何在JQuery中设置文本而不更改内部元素?,javascript,jquery,Javascript,Jquery,我有这个html <h3 id="price">0.00<sup id="category">N/A</sup></h3> 我的结果只显示了'120.25',而类别没有显示 如何解决此问题?text()函数恢复标记中的所有元素。要实现这一点,您可以选择html()函数并一次性编写它 #解决方案1 函数更改(){ $(“#price”).html('120.25'+'Bacon'); } 0.00N/A

我有这个html

<h3 id="price">0.00<sup id="category">N/A</sup></h3>
我的结果只显示了'120.25',而类别没有显示

如何解决此问题?

text()
函数恢复
标记中的所有元素。要实现这一点,您可以选择
html()
函数并一次性编写它

#解决方案1

函数更改(){
$(“#price”).html('120.25'+'Bacon');
}

0.00N/A

更改它是因为您正在修改
h3
元素。相反,每个动态值都有单独的元素,只需更新所需内容即可

$(“#价格”).text('120.25');
$(“#类别”).text('Bacon')


0.00N/A
有几种方法可以做到这一点,这里我展示了一些方法,并建议使用span更改原始标记并对其进行操作)

注:这实际上是一个多个答案来说明差异

0.00N/A

$(函数(){
//文本以原始标记开头,请注意,它具有两个文本节点
设Toring=$(“#价格”).text();
//节点0的原始文本
让torigPrice=$(“#price”).contents().get(0).nodeValue;
让torigCat=$(“#类别”).text();
console.log(“torig:,torigPrice,|”,torigCat);
//price-2及其子类别-2的直接合并
让torigone2=$(“#price-2”).contents().get(0).nodeValue;
$(“#price-2”).contents().get(0.nodeValue=“2.34”;
$(“第2类”)。文本(“黄油”);
//直接添加另一个(是,不执行此操作删除/重新添加)
$(“#类别另一”).remove();
$(“#另定价”).text('786.32');
美元(“#另定价”)。追加(“不好”);
//直接管理备用标记及其子标记(如果可以,可能是正确的方法)
$(#价格变动)文本(“432.34”);
$(“#类别更改”)。文本(“牛奶”);
//克隆原始文件,对其进行操作并将其作为新元素附加(仅用于演示)
//通常情况下,最好使用要克隆和插入的“表”行
让myclone=$(“#price”).clone(true);
//仅用于演示的新id(无dup id)
myclone.attr(“id”,“#price”+“-new”);
//克隆文本
让cloneText=myclone.text();
//克隆并从克隆中删除旧类别
让savedCat=myclone.find('#category').clone(true);
myclone.find(“#category”).remove();
//仅用于演示的新id(无dup id)
savedCat.attr('id','category new');
savedCat.text('New Cat Clone');
myclone.find(“#category”).remove();
//新克隆价格文本
myclone.text(“123.67”);
//添加克隆的类别,然后将其追加回去
savedCat.appendTo(myclone);
$(“#新标记”)。在(myclone)之后;
让tClone=myclone.text();
log(“值:”,torig“,”torig“,”torigone2“,”tClone“,”,$(“#price-2”).text());
//你最初做了什么
$(“价格”).text('120.25');
$(“#类别”).text('Bacon');
});

原创(哎哟):
0.00N/A
原件(另一份):
0.00N/A
替代标记:
0.00N/A
原始-2文本节点:
0.00N/A

新标记:
请显示所需的HTML结果。应注意,这需要更改原始标记。(如果可以的话,这可能是最好的选择)-我还包括了一些替代方法(如果在我的回答中无法做到的话)这里的第一个解决方案会中断任何附加的事件处理程序(如果有)。请显示第二个关于修改文本的实际代码,以获得更完整的答案。
$("#price").text('120.25');
$("#category").text('Bacon');