我尝试在底部使用新的 roomTotal 函数生成前 3 个变量,方法是将“lounge”放入“idt”参数中。我想在具有不同 ID 的其他表中使用相同的代码。但它不起作用,我不明白为什么。请帮忙。
var Vol = document.querySelectorAll("#lounge .vol input");
var Qty = document.querySelectorAll("#lounge .qty input");
var t = document.querySelectorAll("#lounge .total input");
function roomTotal(idt) {
var w = "\"#" + idt;
var Vol = document.querySelectorAll(w + " .vol input\"");
var Qty = document.querySelectorAll(w + " .qty input\"");
var T = document.querySelectorAll(w + " .total input\"");
}
html 片段
<table id="lounge">
<tr>
<td class="item">Upright Piano</td>
<td class="vol">
<input type="number" value="0" placeholder="0">
</td>
<td class="qty">
<input type="number" value="0" placeholder="0">
</td>
<td class="total">
<input type="number" name="" value="60" placeholder="60">
</td>
</tr>
<tr>
<td class="item">Upright Piano</td>
<td class="vol">
<input type="number" value="0" placeholder="0">
</td>
<td class="qty">
<input type="number" value="0" placeholder="0">
</td>
<td class="total">
<input type="number" name="" value="40" placeholder="40">
</td>
</tr>
</table>
最佳答案
\"
<--- 这就是为什么......
假设 w
是 #lounge
...
你的代码
var Vol = document.querySelectorAll(w + ".vol input\"");
正在评估:
var Vol = document.querySelectorAll('#lounge .vol input"');
您需要删除转义的双引号。
在你的情况下应该是:
function roomTotal(idt) {
var w = "#" + idt;
var Vol = document.querySelectorAll(w + " .vol input");
var Qty = document.querySelectorAll(w + " .qty input");
var T = document.querySelectorAll(w + " .total input");
}
关于javascript - 使用函数生成dom选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46857324/