【发布时间】:2015-02-24 12:37:34
【问题描述】:
表格单元格可能包含一个 INPUT 元素、一个 SELECT 元素或其他一些元素。我必须从元素中获取值和类属性,以便适当地路由代码。
表格单元格中只有一个元素(但元素类型可能会改变)。
问题:test1 和 test2 没有返回所需的值(表格单元格中元素的类名和值)。
HTML:
<table id="tbl">
<tr>
<td class="pid">12345</td>
<td class="tbl_vendor"><input class="vi" value="Ikea" /></td>
<td>Stove</td>
<td><input class="qty_in" value="1" /></td>
<td class="del">del</td>
</tr>
<tr>
<td class="pid">38674</td>
<td class="tbl_vendor">
<select class="vendSEL">
<option value="1">C.P.O.</option>
<option value="2">Knightin</option>
<option value="3">CanDine</option>
</select>
</td>
<td id="selTD"></td>
<td><input class="qty_in" value="1" /></td>
<td class="del">del</td>
</tr>
</table>
jQuery/javascript:
var $this, qty, thisRowNdx, thisTR, vendorTD;
$(document).on('keyup', '.qty_in', function() {
$this = $(this);
qty = this.value;
thisTR = $this.closest('tr')[0];
vendorTD = $this.closest('tr').find('.tbl_vendor');
var currVendorTagname = vendorTD.children()[0].tagName;
var test1 = vendorTD.children()[0].getAttribute['class'];
var test2 = vendorTD.children()[0].nodeValue;
alert('currVendorTagname: ' + currVendorTagname);
alert('test1: ' + test1);
alert('test2: ' + test2);
});
【问题讨论】:
-
jQuery/DOM 的全部目的是什么?什么不工作?如果我更新数量你想找到什么?因为您的解决方案可能有效,但似乎过于复杂。
-
感谢您的来信。我很困惑我可以从 jQuery 对象中获取哪些数据,而不是从基本的 js 元素中获取哪些数据。正如你所知道的,我对 jQ 比对 js 更舒服,并且试图填补一些知识空白。我想我现在已经知道(这部分)了。
-
不管怎样,你仍然需要澄清你的问题;你的代码是做什么的?回应什么?它在哪里失败,它没有做什么(它应该),它做了什么(它不应该)?关键是让这个问题在未来对其他人有用;如果它只对你有帮助,而其他人无法理解,那么它可能会被关闭为“不清楚你在问什么”。修改和编辑以改进;这样你就有机会帮助别人。
-
嘿,你在剑桥?你见过约翰伦诺克斯演讲吗?伙计,我非常羡慕你——很想和那个人一起学习数学。我将更新问题以解决您的问题 - 非常感谢。
标签: javascript jquery