在td中获取输入的innerhtml

时间:2012-01-25 20:02:01

标签: jquery

我试图获取表格列中的输入值。

<table>
  <tr class="mytr">
    <td class="mytd"><input type="text" class="bout">123</input></td>
    <td class="mytd"><input type="text" class="bout">ad</input></td>
    <td class="mytd"><input type="text" class="bout">as</input></td>
    <td class="mytd"><textarea rows="1" class="bout">122222</textarea></td>
  </tr>
  <tr class="mytr">
    <td class="mytd"><input type="text" class="bout">45</input></td>
    <td class="mytd"><input type="text" class="bout">3</input></td>
    <td class="mytd"><input type="text" class="bout">4</input></td>
    <td class="mytd"><textarea rows="1" class="bout">5</textarea></td>
  </tr>
</table>

我可以像这样得到表格

$('.mytr').each(function(index) {
});

并且迭代遍历行完全正常但我现在如何获得td的值。我试过了

$('.mytr').each(function(index) {
  alert($('.bout:eq(0)').html()) ;
});

获取第一个tds的输入的innerhtml但我得到空值。我期待123。不确定我做错了什么。

6 个答案:

答案 0 :(得分:2)

对于输入,我们使用.val()

$('.mytr').each(function() {

    alert($(this).find('.bout').eq(0).val());

});

.val()的文档:http://api.jquery.com/val

如果你想获得一行中所有输入的值:

$('.mytr').each(function() {

    $(this).find('td').each(function () {
        alert($(this).find('.bout').val());
    });

});

<强>更新

我刚注意到<input type="text" class="bout">123</input>,有效的输入元素如下所示:

<input type="text" class="bout" value="123" />

以下是一些有关HTML输入代码的精彩文档:https://developer.mozilla.org/en/HTML/Element/Input

答案 1 :(得分:1)

使用:

<input type="text" class="bout">123</input>

HTML无效。 输入字段是自动关闭标记,应格式如下:

<input type="text" class="bout" value="123" />

你有一个,那么你可以使用jquery .val函数来获取输入字段的值。 以此为例:

$('tr.mytr td:first input:first').val();

将获取第一个输入字段的值。希望您可以使用该示例来确定您需要做什么。

答案 2 :(得分:1)

正确定义输入元素及其值的方法:

<input type="text" class="bout" value="123" />

获取循环中的值:

var value = $(this).find('.bout:first').val();

答案 3 :(得分:1)

这是错误的:

<input type="text" class="bout">123</input>

它应该像

<input type="text" value="123" class="bout"></input>

和js

试试这个

  $(function(){

    $('.mytr').each(function(index) {
      var current_tr = $(this);
      alert($('.bout:eq(0)', current_tr).val());

    });

  });

答案 4 :(得分:1)

输入元素没有子项。

<input type="text" name="some_name" value="3" />

注意/&gt;自闭标签。

获取所有输入的值:

$('input').val()

总结:

<table>
  <tr class="mytr">
    <td class="mytd"><input type="text" class="bout" value="123" /></td>
    <td class="mytd"><input type="text" class="bout" value="ad" /></td>
    <td class="mytd"><input type="text" class="bout" value="as" /></td>
    <td class="mytd"><textarea rows="1" class="bout">122222</textarea></td>
  </tr>
  <tr class="mytr">
    <td class="mytd"><input type="text" class="bout" value="45" /></td>
    <td class="mytd"><input type="text" class="bout" value="3" /></td>
    <td class="mytd"><input type="text" class="bout" value="4" /></td>
    <td class="mytd"><textarea rows="1" class="bout" value="5</textarea></td>
  </tr>
</table>

的jquery: 你可以得到一个变量,如:

var values = $('tr input').val();

$('tr input').each(function() {
      alert($(this).val());
});

答案 5 :(得分:0)

你说你希望123这是一种方式

alert($('.mytr:eq(0) td:eq(0)').text());

http://jsfiddle.net/bVhzj/34/