Javascript 函数的作用是:删除文本

Javascript 函数的作用是:删除文本,javascript,jquery,html,Javascript,Jquery,Html,我试图编辑div的文本,但是当我使用我的函数来更新行数时,每次文本都会完全消失。如果你能解释一下原因,我会很高兴的。 提前谢谢 我的更新功能: var rowCountF = $('#tablef tr').length; var rowCountV = $('#tablev tr').length; var ftext = "Teilnehmer (" + String(rowCountF) + ")"; var vtext = "Teilnehmer (" + String(rowCoun

我试图编辑div的文本,但是当我使用我的函数来更新行数时,每次文本都会完全消失。如果你能解释一下原因,我会很高兴的。 提前谢谢

我的更新功能:

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>
Teilnehmer
divf的代码:

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

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

可能您想替换标题内容:

$("#divf h2").html(ftext);
$("#divv h2").html(vtext);
这将选择
divs
中的
h2
元素,因此将仅更新标题中的文本

结果如下所示:

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

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

可能您想替换标题内容:

$("#divf h2").html(ftext);
$("#divv h2").html(vtext);
这将选择
divs
中的
h2
元素,因此将仅更新标题中的文本

结果如下所示:

<div id="divf"class="tableheader"> <h2>Teilnehmer (987)</h2> </div>
<div id="divf"class="tableheader"> <h2>Teilnehmer (123)</h2> </div>
Teilnehmer(987)
泰尔内默(123)
.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);
如果您只想替换标题,那么只需按照中的建议以
为目标。

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

如果您只想替换标题,那么只需按照中的建议以
为目标。

您需要为div引用h2。使用
.html()
将替换#divf中的所有html,在本例中,这意味着它将替换h2

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

示例:

您需要为div引用h2。使用
.html()
将替换#divf中的所有html,在本例中,这意味着它将替换h2

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

示例:

它正按照您告诉它的方式执行:将
#divf
中的所有内容替换为HTML
Teilnehmer(x)
(其中
x
是一个数字)。您告诉它用文本替换
,它不应该是“$”(“#divf h2”).html(ftext);”吗?见文件。这总是用提供的内容替换目标元素的所有内容。此外,在diva副注上的id和类属性之间应该有一个空格。您不需要将
rowCountF
/
rowCountV
放入原始包装器对象中。这些数值已经在您的第二对变量赋值中进行了转换。它正按照您的要求执行:将
#divf
中的所有内容替换为HTML
Teilnehmer(x)
(其中
x
是一个数字)。您告诉它用文本替换
,它不应该是“$”(“#divf h2”).html(ftext);”吗?见文件。这总是用提供的内容替换目标元素的所有内容。此外,在diva副注上的id和类属性之间应该有一个空格。您不需要将
rowCountF
/
rowCountV
放入原始包装器对象中。这些数值已经在您的第二对变量赋值中转换。这不对,它将在旧的
之外添加新的计数,并保持
不变。它每次运行都会越来越长。@Barmar OP从未指定要在他的
中包含文本。他说“每次我更新,文本都会完全消失”,这让我相信他希望文本是累积的。他还说,“我正在努力更新部门的文本”。
更新仅仅是一个假设,事实证明是正确的,我的答案在OP明确之前发布了。从OP的问题中我们知道,他希望在他的
下面有一个连续的ID列表。我回答了所问的问题,如果
假设是正确的,我就加入了对该答案的引用。这是不对的,它将在旧的
之外添加新的计数,并保持
不变。它每次运行都会越来越长。@Barmar OP从未指定要在他的
中包含文本。他说“每次我更新,文本都会完全消失”,这让我相信他希望文本是累积的。他还说,“我正在努力更新部门的文本”。
更新仅仅是一个假设,事实证明是正确的,我的答案在OP明确之前发布了。从OP的问题中我们知道,他希望在他的
下面有一个连续的ID列表。我回答了被问到的问题,如果
的假设是正确的,我会引用这个答案。