私はこれについてまともなハンドルを持っていると思っていましたが、どうやらそうではありません。それでは、また行きます。クリックした場所から 2 スペース上のセルの値が必要です。行の 3 列目になります。理解するためのコードを次に示します。
私はこのようなテーブルを作成します
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', '.edit_project_record', function() {
pid = $(this).parent().find('td:eq(3)').text();
alert(pid);
loadEditProject();
});
アラートが発生すると、ダイアログ ボックス内には何も表示されなくなります。したがって、正しいセルから値を取得していません。これを論理的に分解しようとしましたが、行き詰まっています。これが私の理解ですが、明らかに間違っています
- $(this) = 'td' 要素内の画像。
- parent() = 画像を保持する実際の 'td' 要素
- find('td:eq(3)') = 親の場所 (この場合は行の 3 列目) から特定の 'td' を見つけます。
- .text() = 選択したセルのテキスト値
これを修正できるように、私のロジックがどこで壊れているかを説明してください。ありがとうございました