jQuery .next('td')。text()没有预期的效果

时间:2013-08-02 22:57:44

标签: jquery

我有一张表,我想从中得到一个值。当用户单击单元格中的图标时,我需要将单元格中的文本直接显示在右侧。我正在使用此代码创建表。

PHP

$project_info = $db->prepare("
    SELECT  projects.id,
        projects.project_name,                  
        projects.pm,    
        // ...more columns   
    FROM projects
    WHERE account_id = ?                        
"); 

$project_info->bindValue(1, $aid, PDO::PARAM_STR);
$project_info->execute();       

echo "<table class='projects_contentTable'>";
echo "<th class='content_th'>" . "" . "</th>";
echo "<th class='content_th'>" . "" . "</th>";
echo "<th class='content_th'>" . "Job #" . "</th>";
// ...more headers   

while ($row = $project_info->fetch(PDO::FETCH_ASSOC)) {             
    echo "<tr>";
    echo "<td class='content_td'>" . "<img src='images/edit.png' class='edit_project_record'/>" . "</td>";
    echo "<td class='content_td'>" . "<img src='images/view.png' class='view_project_record'/>" . "</td>";              
    echo "<td class='content_td'>" . "<a href='#'>" . $row['id'] . "</a>" . "</td>";
    // ...more td's
    echo "</tr>";               
}
echo "</table>";

和此代码从单元格中获取值

jquery的

$('body').on('click', '.view_project_record', function() {
    pid = $(this).next('td').text();
    alert(pid);
    loadProject();
});

现在当警报触发时,它会向我发送一个空白框,就像'td'没有值一样。

这是我在评论结果中尝试过的其他内容

pid = $(this).next('.content_td').text(); // no value
pid = $(this).next('.projects_contentTable td a').text();// no value
pid = $(this).next('a').text(); // no value    
pid = $('.projects_contentTable .content_td:eq(3) a').text(); // no value
pid = $('.projects_contentTable td:nth-child(3) a').text(); // all the values from the column... I just want the one from this row

正如你所看到的,我显然不知道这是如何工作的。我的愿望是获得Job#的值,用于我点击的图标所在的确切行。不多也不少。我需要这个值发送到AJAX帖子,它让我疯狂。我知道至少有5种方法可以获得这个价值,你能越多越好,我只想了解它的工作原理。感谢您的帮助

2 个答案:

答案 0 :(得分:1)

在调用next()之前,您需要定位img的父(td)。 $(this).parent().next('td').text();

答案 1 :(得分:0)

使用.children()代替.next()