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

jQuery get value of unknown element within table cell

本文关键字:元素 未知 获取 表单 单元格 jQuery      更新时间:2023-09-26

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

表格单元格中将只有一个元素(但元素类型可能会更改)。

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

jsFiddle 演示

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

这完全是找到正确的参考。或者,这更容易阅读:Mozilla 开发者网络页面。

感谢对这个问题的回答:JavaScript 在没有任何库的情况下获取元素类

溶液:

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

更新的 jsFiddle


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

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