jQuery .html()函数删除文本

时间:2016-12-06 16:57:21

标签: javascript jquery html

我正在尝试编辑div的文本,但是当我使用我的函数来更新rowcount时,每次文本都会完全消失。如果你能解释原因,那会很好。 提前谢谢。

我的更新功能:

var rowCountF = $('#tablef tr').length;
var rowCountV = $('#tablev tr').length;

var ftext = "Teilnehmer (" + String(rowCountF) + ")";
var vtext = "Teilnehmer (" + String(rowCountV) + ")";

$("#divf").html(ftext);
$("#divv").html(vtext);

我的div层:

<div id="divf"class="tableheader"> <h2>Teilnehmer</h2> </div>

divf代码:

<div id="divf"class="tableheader"> <h2>Teilnehmer</h2> </div>

3 个答案:

答案 0 :(得分:6)

您实际上是用文本替换div本身的内容。这意味着标题消失,只有纯文本。

您可能想要替换标题内容:

$("#divf h2").html(ftext);
$("#divv h2").html(vtext);

这将选择h2内的divs元素,因此只会更新标题内的文字。

结果如下所示:

<div id="divf"class="tableheader"> <h2>Teilnehmer (987)</h2> </div>
<div id="divf"class="tableheader"> <h2>Teilnehmer (123)</h2> </div>

答案 1 :(得分:0)

.html() 设置 HTML,意味着它会替换当前存在的任何内容。如果你想添加到HTML,你需要将HTML设置为已经存在的加上你要添加的内容,如下所示:

var rowCountF = $('#tablef tr').length;
var rowCountV = $('#tablev tr').length;

var ftext = "Teilnehmer (" + rowCountF + ")";
var vtext = "Teilnehmer (" + rowCountV + ")";

//Get already-existing HTML
var divfHtml = $("#divf").html();
var divvHtml = $("#divv").html();

//Set the new HTML to the existing + the new text
$("#divf").html(divfHtml + ftext);
$("#divv").html(divvHtml + vtext);

如果您只想替换标题,请将<h2>定位为Martin Zikmund中建议的his answer

答案 2 :(得分:0)

你需要引用div的h2。使用.html()将替换#divf中的所有html,在这种情况下意味着它将替换h2

$("#divf h2").html(ftext);
$("#divv h2").html(vtext);

示例:https://jsfiddle.net/qhef0toc/3/