使用class not id获取jquery的一些td行值

时间:2011-07-12 11:02:07

标签: javascript jquery

如何使用jquery获取td值? while循环将生成一些具有相同类名...

<table>
   <?php
   while(...){
   ?>
   <tr>
      <td class="datao">data 0</td>
      <input type="button" class="getValue" value="Delete" />
   </tr>
   <?php
   }
   ?>
</table>

Jquery的:

$(".getValue").click(function(){ $.post("somescript.php", { value:$("data0").val()}, function(data){ alert(data); }); });

更新:

好吧,我正在生成一个包含来自数据库的数据的表。 之后我想删除数据库中的任何一行,所以,我把一个按钮附加到每个数据值()这里的问题是,当我在每个按钮和td上使用相同的类名时,获取正确的td值。之后,我将使用AJAX并使用PHP从数据库中删除PROPER行数据。

更新:

生成的代码如下所示:

<table>
       <tr>
          <td class="datao">xzczxc</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">gfh+pso</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">sdhgfjgk</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">asdghdas</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">egfcn</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">sdfds..k</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">6ytytu</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">tyghj0</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">daghjgh0</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">dagh0</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">dada0</td>
          <input type="button" class="getValue" value="Delete" />
          <td class="datao">dasa</td>
          <input type="button" class="getValue" value="Delete" />
       </tr>
</table>

如何删除例如第四行? 还是第五个?

我只想在按下按钮时获取td值并将这些值传递给php脚本全部。

我想在按下“删除”按钮

时将一些td值传递给ajax调用
<table>
       <tr>
          <td class="datao">first column</td>
          <td class="data1">first column</td>
          <td class="data2">first column</td>
          <td colspan="2"></td>
       </tr>
       <tr>
          <td class="datao">jkhghj</td>
          <td class="data1">dsfg</td>
          <td class="data2">iouhfg</td>
          <input type="button" class="deleteRow" value="Delete" />
       </tr>
       <tr>
          <td class="datao">hgjdss</td>
          <td class="data1">oiuy</td>
          <td class="data2">qweasd</td>
          <input type="button" class="deleteRow" value="Delete" />
       </tr>
       <tr>
          <td class="datao">aweda</td>
          <td class="data1">asd</td>
          <td class="data2">asd</td>
          <input type="button" class="deleteRow" value="Delete" />
       </tr>
       <tr>
          <td class="datao">asdasvg</td>
          <td class="data1">esw</td>
          <td class="data2">ee</td>
          <input type="button" class="deleteRow" value="Delete" />
       </tr>
       <tr>
          <td class="datao">qw</td>
          <td class="data1">zdg</td>
          <td class="data2">lykj</td>
          <input type="button" class="deleteRow" value="Delete" />
       </tr>
</table>

5 个答案:

答案 0 :(得分:2)

您可以使用map()函数获取所有匹配元素的文本,如下所示:

var values = $('td.datao').map(function() {
    return $(this).text();
}).get();

最后的get()返回一个普通的javascript数组而不是jQery包含的数组。

答案 1 :(得分:0)

阅读评论似乎你想要一个特定的评论来获取价值。

为此,请使用.eq

$(".datao:eq(0)").val(); // first one

但是,它是datao还是data0data1等? HTML输出示例会很有帮助。

编辑:我希望我能更好地理解你。

$(".getValue").click(function(){
    $.post("somescript.php", { value: $(this).parent().find('td').html() },
                               function(data){
                                    alert(data);
                               });
});

答案 2 :(得分:0)

FCC-PT说得对:

$(“data0”)[0] .val()将为您提供第一个条目值。你需要循环或每个()它们来获取值列表。但是你需要提供更多的背景来理解你在做什么。

答案 3 :(得分:0)

假设您想要个别值:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript"><!--
jQuery(function($){
    $("button").click(function(){
        var values = [];
        $("table td.datao").each(function(){
            values.push( $(this).text() );
        });
        alert(values.join("\n"));
    });
});
//--></script>
</head>
<body>

<table>
    <tr><td class="datao">data 0</td></tr>
    <tr><td class="datao">data 1</td></tr>
    <tr><td class="datao">data 2</td></tr>
    <tr><td class="datao">data 3</td></tr>
    <tr><td class="datao">data 4</td></tr>
</table>

<button>Get values</button>

</body>
</html>

答案 4 :(得分:0)

所以看起来没有人回答我的问题并正确回答我的问题,无论如何,我要感谢大家的意见。

我已经找到了办法并发现了一种不完美的方法,但工作正常......

Suposing我想抓住输入,选择或其他内容的值......

$('input.buttonClass').live('click', function() {
        var valuesArray = [];

        $(this).closest('tr').find("select").each(function() {
            valuesArray.push($(this).attr('value'));
        });

        $.post("script.php", { somename:valuesArray[0], otherName:valuesArray[1] }, function(data) {
                do something in here with the returned data!
            });
        }

    });

在上面的代码中,tr内部的select标签的值将存储在数组中,并通过ajax调用传递给php脚本。存储来自其他输入类型的值,例如input type =“text”,如下所示:... find(“select,input [type = text]”)。每个...我希望有人得到我的工作帮助。谢谢你们。