Javascript JQuery如何获取表中动态创建的输入值?
我已经查看了linked in上的其他来源,但我仍然不确定在动态创建输入时如何找到输入的值。我正在创建一个电子商务商店项目,每当用户向购物车添加内容时,在购物车页面上,我都会显示每个购物车项目。然后,每个购物车项目都有一个数量输入框,以便用户可以根据需要更改数量(当他们按下“动态创建”按钮时)。代码如下: 我有一个foreach循环,确定需要显示多少项,然后从代码中选择一行:Javascript JQuery如何获取表中动态创建的输入值?,javascript,jquery,Javascript,Jquery,我已经查看了linked in上的其他来源,但我仍然不确定在动态创建输入时如何找到输入的值。我正在创建一个电子商务商店项目,每当用户向购物车添加内容时,在购物车页面上,我都会显示每个购物车项目。然后,每个购物车项目都有一个数量输入框,以便用户可以根据需要更改数量(当他们按下“动态创建”按钮时)。代码如下: 我有一个foreach循环,确定需要显示多少项,然后从代码中选择一行: <tr><td> <input type=\"number\" class =\
<tr><td> <input type=\"number\" class =\"cartQuant\" name=\"quantity\"
data-row-quant=" + row['itemid'] + " value="+ row['quantity']+"><a
data-role='button' data-theme='a' data-row-id=" + row['itemid'] + "
data-row-num= " + i + " href='#'>UPDATE</a></td></tr>"
以及它调用的函数:
function clickHandler() {
var row = $('#user_Cart tr').eq($(this).attr("data-row-num"));
var quantity = row.find('#cartQuant').val();
}
我认为上面的方法是先获取行,然后从该行中找到输入值。我得到一个未定义的数量值。您的类选择器无效,您应该使用
而不是
是类选择器,
是id选择器。您的类选择器无效,您应该使用
而不是
是一个类选择器,#
是一个id选择器。您可以简化代码:
在定位点上,单击获取最接近的tr,然后找到cartQuant并使用该值
此外,由于要动态添加新行,因此需要将事件委托给静态祖先(如文档):
$(文档)。在(“单击”上,“用户购物车a”,函数(e){
变量数量=$(this.closest('tr').find('.cartQuant').val();
控制台日志(数量);
})
您可以简化代码:
在定位点上,单击获取最接近的tr,然后找到cartQuant并使用该值
此外,由于要动态添加新行,因此需要将事件委托给静态祖先(如文档):
$(文档)。在(“单击”上,“用户购物车a”,函数(e){
变量数量=$(this.closest('tr').find('.cartQuant').val();
控制台日志(数量);
})
嘿,所以我把#cartQuant改成了。cartQuant,但我仍然没有定义。调试行时,该行值表示它正在存储数组。如何访问该数组的不同组件以获取输入值?这就是我的想法,因此我尝试执行第[0]行。查找('.cartQuant.va()'),但有人告诉我,在使用第[0]行时,查找不是函数。在数组中,正在存储对象。我需要能够访问对象和对象属性,比如输入值field@RW6您得到的不是数组,而是jQuery对象。您可以将代码简化为函数clickHandler(){var quantity=$(this).sides(“.cartQuant”).val()}
嘿,所以我将#cartQuant改为.cartQuant,但我仍然没有定义。调试行时,该行值表示它正在存储数组。如何访问该数组的不同组件以获取输入值?这就是我的想法,因此我尝试执行第[0]行。查找('.cartQuant.va()'),但有人告诉我,在使用第[0]行时,查找不是函数。在数组中,正在存储对象。我需要能够访问对象和对象属性,比如输入值field@RW6您得到的不是数组,而是jQuery对象。您可以将代码简化为函数clickHandler(){var quantity=$(this).sides(“.cartQuant”).val();}
嘿,我会这么做,但这基本上取决于用户更新的tr。如果用户想更新购物车中的第二项,我认为最接近的('tr')不起作用。我可以用其他可以找到被单击的确切表行的东西替换最近的('tr')吗?嘿,我可以这样做,但这基本上取决于用户更新哪个tr。如果用户想更新购物车中的第二项,我认为最接近的('tr')不起作用。我可以用其他可以找到被单击的确切表行的东西替换最近的('tr')吗?
function clickHandler() {
var row = $('#user_Cart tr').eq($(this).attr("data-row-num"));
var quantity = row.find('#cartQuant').val();
}
var quantity = row.find('.cartQuant').val();