我有一个HTML表格,我想基本上循环遍历每一行和每个单元格,并简单地打印出结果。 其中一件事是,一些单元格有输入框,一些单元格有选择下拉菜单,而另一些单元格则包含TD内部的原始内容。
什么是最快的方法来简单地循环遍历HTML表格中的每个单元格并获取每个单元格的结果? 对于选择下拉菜单,我想捕获选择的值(而不是显示文本)。
我有一个HTML表格,我想基本上循环遍历每一行和每个单元格,并简单地打印出结果。 其中一件事是,一些单元格有输入框,一些单元格有选择下拉菜单,而另一些单元格则包含TD内部的原始内容。
什么是最快的方法来简单地循环遍历HTML表格中的每个单元格并获取每个单元格的结果? 对于选择下拉菜单,我想捕获选择的值(而不是显示文本)。
TD
,并评估它的 first-child
是否为 input
元素。如果是,则返回其值。如果不是,则询问它是否产生文本。如果它产生文本,我们请求文本。如果它不产生文本,我们请求 TD
的 HTML 代码:$("table td").each(function(i,o){
var value = ( $(":first-child", this).is(":input") )
? $(":first-child", this).val()
: ( $(this).text() != "" )
? $(this).text()
: $(this).html() ;
alert(value);
});
由于每个单元格内只有一个元素,您可以这样做:
$("#myTable tr").each(function() {
// this represents the row
$("td > *", this).each(function() {
// nodeName attribute represents the tag - "INPUT" if element is <input>
// use the type attribute to find out exactly what type
// of input element it is - text, password, button, submit, etc..
if(this.nodeName == "INPUT") {
console.log($(this).attr("type"));
}
});
});
#myTable > tr
意味着获取所有作为某些 id="myTable"
的子元素的 <tr>
元素。同样地,td > *
意味着获取此刻由 this
对象表示的 <td>
元素的所有子元素。这些都是 CSS 选择器,有多种在 DOM 中选择项目的方法。请参阅jQuery 文档以了解更多有关选择器的信息。查看jQuery 核心文档可以了解 jQuery 对象上所有可用方法的详细参考资料。很难确切地知道你想要什么,但如果你可以假设带有选择框的 td 只有这个,带有输入框的 td 只有一个文本字段,那么你可以像这样做:http://jsbin.com/alara3/edit
您可以使用以下代码。
$(':input', '#tableId').val('');
tbody
元素。所以正确的写法应该是#myTable > tbody > tr
- 更多信息请参考这个问题:https://dev59.com/UkvSa4cB1Zd3GeqPd1wa - Anurag