jQuery,将td文本分配给变量并发布

时间:2010-08-25 07:18:51

标签: javascript jquery text html-table

我对JavaScript比较陌生并遇到问题我希望你能提供帮助

我想做的是这个

$("tr:not(:first-child)").each(function(){
                            var sitename = $("this" + "td:nth-child(1)").text();
                            var type= $("this" + "td:nth-child(2)").text();
                            var address= $("this" + "td:nth-child(3)").text();
                            var city= $("this" + "td:nth-child(4)").text();
                            var lat= $("this" + "td:nth-child(5)").text();
                            var long= $("this" + "td:nth-child(6)").text();
                            var ftime= $("this" + "td:nth-child(7)").text();
                            $.post('./watchdog.php',{ oadata: sitename});
                    }).end().remove();

我在一个表中选择“tr”,除了第一个包含“th”的表。然后我只是剥离td并将文本值赋给变量。最后,我将这些数据发布到一个基本上将其插入MySQL数据库的PHP脚本中。问题是我在数据库中不断获取NULL值。

这是我在HTML中生成的表

Site Name   Type    Address City    Lat Long    Fault Time
ISB056  Spur    Opposite Plot No. 435, Sector I-10/4    Islamabad   73.04393    33.64677    12:02 PM
ISB078  Spur    SEECS NUST H-12 Islamabad   Islamabad   72.990044   33.64246    12:02 PM

2 个答案:

答案 0 :(得分:0)

$("this" + "td:nth-child(1)").text()

生成完全没有意义的选择器thistd:nth-child(1)。我想你想要:

$(this).find("td:nth-child(1)").text()

但更容易的是只需要一个数组

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

然后发送数据

$.post('./watchdog.php',{ sitename: data[0], type: data[1],...});

答案 1 :(得分:0)

您不能使用'this',而是this,请删除引号。

你也应该使用类。

<tr class="site">
   <td class="sitename">...</td>
   ...
</tr>

这将使您的代码更易于阅读和调试:

$("tr.site").each(function(){
    var sitename = $(".sitename",this)
})