jQuery获取表格单元格中未知元素的值

时间:2014-12-27 18:04:44

标签: javascript jquery

表格单元格可以包含INPUT元素,SELECT元素或其他元素。我必须从元素中获取值和类属性,以便适当地路由代码。

表格单元格中只有一个元素(但元素类型可能会发生变化)。

问题:test1和test2没有返回所需的值(表格单元格中元素的类名和值)。

jsFiddle Demo

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);
});

1 个答案:

答案 0 :(得分:1)

这都是找到the right reference的问题。或者,这更容易阅读:the Mozilla Developer Network page

感谢您对此问题的回答:JavaScript getting an elements class without any libraries

解决方案:

var test1 = vendorTD.children()[0].className;
var test2 = vendorTD.children()[0].value;

Updated jsFiddle


请注意,这应该有效,但没有:

var test1 = vendorTD.children()[0].getAttribute['className'];