将HTML值拉入Javascript变量

我有一个包含多列的表,其中一列是复选框。 每当选中它时,它会在表格的右侧显示另一个列单元格,并使用向上/向下微调器来设置值。

我遇到的问题是我不能让微调器超过我所拥有的数量列中的数字。 因此,我需要将相应行中Quantity列的当前值拉入javascript变量,并将其与我的微调器函数一起使用。 我已经能够使用getElementById获取值,但只获取表中的第一个值,并且不适用于表中的任何其他值。 我一直在尝试getElementsByClassName但我没有运气。

我怎么能成功地做到这一点?

PHP / HTML:

  query($query) as $row) {?>  <td class="loc ui-widget-content" id="loc-"> <td class="rp-code ui-widget-content" align="center" id="rp-code-"> <td class="sku ui-widget-content" id="sku-"> <td class="special-id ui-widget-content" align="center" id="special-id-"> <td class="description ui-widget-content" id="description-"> <td class="quantity ui-widget-content" align="center" id="quantity-"> <td class="unit ui-widget-content" id="unit-">
Loc Report Code SKU Special ID Description Quantity Unit Quantity #

JavaScript …我试图使用quantity变量来获取值。 每次选中一个复选框时, console.log(quantity)都会返回undefined

 $(function () { $(".check").change(function(){ $(this).closest('tr').find('td.quantity_num').toggle(this.checked); console.log($('input.check').is(':checked')); var quantity = document.getElementsByClassName('quantity').innerHTML; console.log(quantity); if($('input.check').is(':checked')) $(this).closest('table').find('th.num').toggle(true); else $(this).closest('table').find('th.num').toggle(false); $( ".spinner" ).spinner({ spin: function( event, ui ) { if ( ui.value > quantity ) { $( this ).spinner( "value", quantity ); return false; } else if ( ui.value <= 0 ) { $( this ).spinner( "value", 0 ); return false; } } }); }); }); 

 var quantity = $(this).closest('tr').find('td.quantity').html(); 

建议将该值放在数据属性中:

  

然后你可以从jQuery访问该值:

 var quantity = $(this).closest('tr').find('td.quantity').data('quantity'); 

这样您就不依赖于HTML。 想象一下,明天,在那个单元格中,您想要使用或添加数量单位。 如果您的数据位于属性中,则不依赖于单元格内的实际内容。

您无法获取整个类(节点列表)的innerHTML属性。

你有:

 var quantity = document.getElementsByClassName('quantity').innerHTML; 

如果你把它改成下面的行,那么它应该工作:

 var quantity = document.getElementsByClassName('quantity')[0].innerHTML; 

你需要获得这样的当前行值

 var quantity = $(this).closest('tr').find('td.quantity').text();