我有几排桌子。每行都有标题,数据和隐藏字段。数据列可以具有文本或文本区域。

<table id="knowledgeTreeTable" class="custom">
<tbody>
  ....................
  <tr>
     <th class="">What is the name of the party?</th>
     <td class="">
        <textarea id="ktField_7" class="ktEdit" type="text"></textarea>
     </td>
     <input id="ktField_7H" type="hidden" value="Unique contested">
  </tr>
  <tr>
     <th class="">What is the name of the opposing party?</th>
     <td class="">
        <input id="ktField_8" class="ktEdit" type="text" style="width: 97%;">
     </td>
     <input id="ktField_8H" type="hidden" value="Query">
  </tr>
  ......................
</tbody>
</table>


我能够读取标头和隐藏字段的内容,但不确定如何读取数据列,因为它可以具有两种不同类型的元素。

$("#knowledgeTreeTable tr").each(function() {
        alert($('th', this).text());//OK
        //alert($('td > [input, textarea]', this).val()); // This is not OK.
        alert($('input', this).val());//OK
    });

最佳答案

就像在CSS选择器中一样,寻找这两个:

alert($('td > input, td > textarea', this).val());


尽管由于您对两者都使用相同的类,所以我倾向于使用:

alert($('td > .ktEdit', this).val());

10-08 07:01