gpt4 book ai didi

php - 写出 html 而不是动态创建元素时出现 Javascript 错误

转载 作者:行者123 更新时间:2023-11-28 15:57:01 27 4
gpt4 key购买 nike

我有一个 javascript 函数,当通过 javascript 添加 td 元素时,它可以在 onclick 上正常运行。删除按钮工作正常。但是当我使用 php 创建元素并单击“删除”时,我得到:

SyntaxError: syntax error
var header = document.getElementById(

即使计数器工作正常。这是范围问题吗?这是我的代码:

JS

var labor_count = 0;
var part_count = 0;

function incrementLabor(count) {
labor_count = parseInt(count);
console.log(labor_count);
}

HTML/PHP

public function getTableRow()
{
return '
<tr>
<td>
<input
type="text"
name="work_description[]"
value="'.$this->description.'">
</td>
<td>
<input
class="hours calculate"
type="text"
name="hours[]"
value="'.$this->hours.'"
onchange="calculate();"
size="2">
</td>
<td>
<input
class="rate calculate"
type="text"
name="rate[]"
value="'.$this->rate.'"
onchange="calculate();"
size="2">
</td>
<td>
<input
type="button"
value="Remove"
onclick="
(function () {
var parent = this.parentNode.parentNode; //get the row node
table.deleteRow(parent.rowIndex); //Delete the row index behind it.
labor_count--;
console.log(labor_count);
if (labor_count === 0) {
var header = document.getElementById("labor_header");
header.parentNode.removeChild(header);
})()
};" >
</td>
</tr>

';
}

这是工作函数:

function removeIt(element) {
var parent = element.parentNode.parentNode; //get the row node
var table = parent.parentNode;
table.deleteRow(parent.rowIndex); //Delete the row index behind it.
labor_count--;
console.log(labor_count);
if (labor_count === 0) {
var header = document.getElementById("labor_header");
header.parentNode.removeChild(header);
}
}

最佳答案

getElementById( 后面的引号是关闭 onclick="引号。我建议命名您的函数,然后在 onclick 中调用它

<script>
function removeIt(element) {
var parent = element.parentNode.parentNode; //get the row node
table.deleteRow(parent.rowIndex); //Delete the row index behind it.
labor_count--;
console.log(labor_count);
if (labor_count === 0) {
var header = document.getElementById("labor_header");
header.parentNode.removeChild(header);
}
}
</script>

<input
type="button"
value="Remove"
onclick="removeIt(this)"
>

此外,在 php 中,您应该将 htmlspecialchars() 放在 $this->description、$this->hours 和 $this->rate 周围,以防它们包含引号或其他特殊字符。

关于php - 写出 html 而不是动态创建元素时出现 Javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18346233/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com