我正在为我们公司的报价软件创建一个模板,该软件会生成一个 HTML 页面并动态填充一个表格,其中每个报价项目都是一个新行。
我需要检查报价单中的特定部件号,如果存在,我需要更改该行的 HTML。
这是 HTML 的片段
<div id="line-items-section" class="section">
<table id="line-item-detail-table" class="table-001">
<tr>
<!-- <th>
</th> -->
<th>
QTY
</th>
<th width="70%">
Item
</th>
<th>
Unit Price
</th>
<th>
Ext Price
</th>
</tr>
[Begin_LineItem] [Begin_LineTypeProduct]
<tr id="canChange" class="row-product">
<!-- <td class="col-option-box">
[QV_OptionBox]
</td> -->
<td class="col-qty">
[DI_QtyBase]
</td>
<td class="col-partnumber">
[DI_ManufacturerPartNumber]
</td>
<td class="col-unit-price">
[DI_UnitPrice:f=1]
</td>
<td class="col-extended-price">
[DI_ExtendedPrice:f=1]
</td>
</tr>
<tr class="row-product-description">
<!-- <td class="col-option-box">
[QV_OptionBox]
</td> -->
<td class="col-qty">
</td>
<td colspan="3" class="col-description">
[DI_Description]
</td>
</tr>
[End_LineTypeProduct]
然后我有这个Javascript文件:
var matches = document.querySelectorAll("td.col-partnumber");
for(var value of matches.values()) {
//console.log(value.innerText);
if (value.innerText == "SLAB KIT FORM") {
var str = '<tr class="row-comment"><td class="col-qty"></td><td colspan="4" class="col-description">[DI_Description]</td></tr>';
var Obj = document.getElementById('canChange');
Obj.outerHTML = str;
}
}
我正在使用 querySelectorAll 和 For 循环来查找我想要的零件号(我正在寻找“SLAB KIT FORM”)。然后使用outerHTML 来改变HTML。
这部分有效。
结果是,找到了部件号,但代码只更改了表中的第一行......我正在寻找的表行可能出现在表中的任何位置(甚至在同一个表中多次出现)。
本质上,我需要让这个代码只针对包含带有 SLAB KIT FORM 的单元格的表格行