我试图获取页面上多个输入的值。输入的ID是动态生成的。获取其ID变化的元素的值
<input id="updates_662224305" class="text quantity" type="text" value="1" name="updates[662224305]" size="4">
我正在为包含输入的表格和单元格运行一个循环。我得到的innerHTML输入位于细胞,然后切片,他们的ID是部分:
var racetamarray = [],
racetamtotal = 0,
table = document.getElementById('cart-table'),
cells = table.getElementsByTagName('td');
for (var i=0,len=cells.length; i<len; i++){
if(cells[i].innerHTML.indexOf("ncombo-racetam") != -1) {
i+=3;
var racetaminput = cells[i].innerHTML;
var racetaminputcontain = racetaminput.slice(43,60);
var racetamelem = document.getElementById(racetaminputid);
racetamarray.push(parseInt(racetamelem.value));
}
}
这在Firefox的工作,因为我能够提取它们的ID,并把它们放在变量racetamelem
。但是,当我在Chrome中尝试它时不起作用,切片出现在字符串的不同部分,并且不捕获它们的ID。有没有更好的方法来切分或将输入从字符串转换为DOM元素?
HTML在表中的行中的一个:
<tr class="item sampler-pramiracetam-capsules">
<td>
<span class="ncombo-racetam"></span>
<a href="/products/sampler-pramiracetam-capsules">
<img src="//cdn.shopify.com/s/files/1/0173/1766/products/PramiracetamCaps_grande_thumb.jpg?v=1396441752" alt="Sampler, Pramiracetam Capsules" />
</a>
</td>
<td>
<a href="/products/sampler-pramiracetam-capsules">Sampler, Pramiracetam Capsules - 30 Capsules</a></td>
<td>$8.90</td>
<td><input class="text quantity" type="text" size="4" id="updates_658967781" name="updates[658967781]" value="1" class="replace" /></td>
<td>$8.90</td>
<td><a class="btn remove-from-cart" href="/cart/change?id=658967781&quantity=0">Remove</a></td>
</tr>
任何机会,你可以把它放在jsfiddle? – Pete
为什么不只是'input = table.getElementsByTagName('input')'获取所有输入到一个NodeList? – MrCode
同意MrCode。根据浏览器的支持要求,你也可以使用'table.querySelectorAll('input')' – Jack