td要素がjavascriptを介して追加されたときにonclickで正常に実行されるjavascript関数があります。削除ボタンは正常に機能します。しかし、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);
}
}