Javascript JQuery:遍历2个特定单元格的表行
我是一个完全的JQuery新手,在过去的两天里我一直在研究这个问题,但现在我的大脑已经崩溃了 以下是我所拥有的: 具有一定行数的表(如在线商店的购物车) 我不想要最后一行(因为它包含购物车总计),也不想要第一行(即列标题) 以下是我想要的: 在文档加载时,我希望遍历该表的每一行(第一行和最后一行除外),并获取(例如)第一列和最后一列,将这些值传递给web服务,并让web服务返回一个值以放入该行另一列的文本框中 表格结构如下:Javascript JQuery:遍历2个特定单元格的表行,javascript,jquery,Javascript,Jquery,我是一个完全的JQuery新手,在过去的两天里我一直在研究这个问题,但现在我的大脑已经崩溃了 以下是我所拥有的: 具有一定行数的表(如在线商店的购物车) 我不想要最后一行(因为它包含购物车总计),也不想要第一行(即列标题) 以下是我想要的: 在文档加载时,我希望遍历该表的每一行(第一行和最后一行除外),并获取(例如)第一列和最后一列,将这些值传递给web服务,并让web服务返回一个值以放入该行另一列的文本框中 表格结构如下: <table id="blahzayblahgrdItems"&
<table id="blahzayblahgrdItems">
<tbody>
<tr>
<td>product</td>
<td>req.ship date</td>
<td>est.ship date(input textbox)</td>
<td>price</td>
<td>qty</td>
<td>subtotal</td>
</td>
</tbody>
</table>
然而,我在将实际数量和产品传递给我的Web服务时却一片空白。我尝试了不同的代码变体,并抛出了一个警报框来查看返回的内容,但我看到了标题、表数据片段、完整表数据等。如果您能提供任何帮助,我将不胜感激。为要分析的每一行设置一个类,然后执行以下操作:
var partID = $("tr.some_class td")[4].text();
var qty = $("tr.some_class td")[5].text();
我认为将类(如
info
)放在第一行和最后一行(特别是样式)并执行以下操作会更容易一些
使用jsfiddle的json echo更新了jsfiddle的工作示例:
你的桌子少了tr吗?哎呀,tr没有少,我只是忘了把它们放在上面。。。编辑我添加了一个使用实际json调用的JSFIDLE示例。不要忘记单击答案旁边的复选标记,标记最能回答您问题的答案。太多的新用户不知道他们应该这样做。下面是一个更新的示例,prob更好地显示了数据被更改为不同的值:我将尝试您的解决方案,一旦我弄清楚如何将类放入。。。它目前在我脑海中的ASP datagrid视图中,我不记得如何在datagrid中实现它,但是在jquery中实现它非常容易。。我正在为你更新我的答案。现在就要尝试了,谢谢。我假设其中一个tr:first应该是tr:last?谢谢。。这些类已进入并正确循环。。但是我遇到了一个小麻烦。。。我正在执行一个简单的警报,以确保在执行任何ajax调用之前传递了正确的值。这产品很好。。但是数量给了我一个空白值。在TD中返回空白的是一个文本框,而不是一个标签,我尝试使用.Var()代替.To(),但仍然没有骰子。有什么想法吗?
var partID = $("tr.some_class td")[4].text();
var qty = $("tr.some_class td")[5].text();
// add a class to first and last tr to make formatting a little nicer as well
$('#blahzayblahgrdItems tr:first,#blahzayblahgrdItems tr:last').addClass('info');
// loop over each one except the ones with class
$('#blahzayblahgrdItems tr:not(.info)').each(function() {
var $prod = $('td:eq(0)', this);
var $sub = $('td:eq(5)', this);
var result = $prod.text() + '-' + $sub.text(); // do your ajax with these values
$.get('ajax/test.html', function(data) {
$prod.text(data.val1); // depends on your system
$sub.text(data.val2); // depends on your system
});
});