1

嘿伙计们,我正在尝试从表中获取特定名称。这是我的代码:

$(document).ready(function () {
    $("#NotesAccessor").click(function () {
      var notes_name = $(this).document.getElementById("#user_table");
      alert(notes_name);
      run();
    });
});

这是上面的内容,这是我尝试使用#notesAccessor 访问与哪个表行单击的关联用户名的地方

桌子:

 .........
    <td>
        $csvusername
    </td>
.........
    <td>
    ";
      if ($checkNotes[1] == 'No')
    {
        echo "None";
    }
    if ($checkNotes[1] == 'Yes')
    {
            echo "<a href='#' id='NotesAccessor'>Click to access</a>";
    }
    echo "
    </td>
........

我的问题是 - 我如何获取关联的 $csvusernameNotesAccessor以便我可以将其发送到 Jquery 中的对话框并打开我需要获取的那个人的笔记。

希望这是有道理的。

更新:

这是完整的表格:

<table class='results'>
    <tr class='firsttr' style='background:gray;'>
        <td>First Name</td>
        <td>Last Name</td>
        <td>Email</td>
        <td>Phone</td>
        <td>Username</td>
        <td>Password</td>
        <td>Status</td>
        <td>Combined Single Limit</td>
        <td>Bodily Injury Each Person</td>
        <td>Bodily Injury Each Accident</td>
        <td>Property Damage</td>
        <td>Address</td>
        <td>Notes</td>
        <td>#</td>
    </tr>"; $j = 0; while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { $val = 1; $csvfirst
    = $row; $csvfirstname = $csvfirst['firstname']; $csvlastname = $csvfirst['lastname'];
    $csvemail = $csvfirst['email']; $csvphone = $csvfirst['phone']; $csvusername
    = $csvfirst['username']; $csvpassword= $csvfirst['password']; $csvstatus
    = $csvfirst['status']; $csvnotes = $csvfirst['notes']; $csl = $csvfirst['Combinedlimit'];
    $bodyinj = $csvfirst['bodyinjur']; $eachacc = $csvfirst['bodyinjureachacc'];
    $propertydmg = $csvfirst['propertydmg']; // Select the current employees
    address $psql = "SELECT MailingAdrs FROM insuranceverificationdisclaimer
    WHERE TraineeUsername =:user"; $psth= $DBH->prepare($psql); $psth->execute(array(':user'
    => $csvusername )); while ($prow = $psth->fetch(PDO::FETCH_ASSOC)) { $pcheck
    = $prow; $address = $pcheck['MailingAdrs']; } if ($csvstatus != "No Longer
    Work Here" && $csvstatus == "Confirmed"){ //check to see if notes exist
    if (empty($csvnotes)) { $checkNotes = 0; } else { $checkNotes = 1; } $memberfirstnamearray[$j]
    = $csvfirstname; $memberlastnamearray[$j] = $csvlastname; $memberemailarray[$j]
    = $csvemail; $memberphonearray[$j] = $csvphone; $membercsl[$j] = $csl;
    $memberbodyinj[$j] = $bodyinj; $membereachacc[$j] = $eachacc; $memberpropertydmg[$j]
    = $propertydmg; $memberstatus[$j] = $csvstatus; $memberaddress[$j] = $address;
    $j++; $i++; echo "
    <tr>
        <td>$csvfirstname</td>
        <td>$csvlastname</td>
        <td>$csvemail</td>
        <td>$csvphone</td>
        <td class='user_table'>$csvusername</td>
        <td>$csvpassword</td>
        <td>$csvstatus</td>
        <td>$csl</td>
        <td>$bodyinj</td>
        <td>$eachacc</td>
        <td>$propertydmg</td>
        <td>$address</td>
        <td>"; if ($checkNotes == 0) { echo "None"; } if ($checkNotes == 1) { echo
            "<a href='#' id='NotesAccessor'>Click to access</a>"; } echo "</td>
        <td>$i</td>
    </tr>"; } }
</table>
4

2 回答 2

2

您正在将纯 JavaScript 与 jQuery 混合使用,您可以按如下方式解决。

首先,您可以放置​​一个类来识别<td>with $csvusernameclass='td_with_csvusername'然后执行以下操作:

$(document).ready(function () {
    $(".NotesAccessor").on("click", function () {
        var td = $(this).parent().parent().find(".td_with_csvusername");
        alert(td.html());
    });
});
于 2013-02-10T00:09:10.720 回答
1

发布输出 HTML 比 PhP 版本更好,但我假设您的 HTML 类似于:

<table>
    <tbody>
        <tr>
            <td>UserName</td>
            <td><a href='#' id='NotesAccessor'>Click to access</a>"</td>
        </tr>
    </tbody>
</table>

然后你可以使用 jQuery 的parent()prev()来查找锚的父级的上一个兄弟,类似于这样:

$(document).ready(function () {
    $("#NotesAccessor").click(function () {
        var notes_name = $(this).parent().prev().html();
        alert(notes_name);
        //run();
    });
});

演示- 查找匹配的用户名列


如果上面的 HTML 不是这样,那么请发布确切的输出,因为当您单击锚点时td,了解如何遍历匹配非常重要。tr假设这就是你想要达到的目标。

编辑

现在才看到你的更新。我知道您已经有了解决方案,但是为了完整起见,无论如何我都已添加到此答案中,以防它对未来的用户有用。

在您的示例代码中,您已经在 user-name cell 上有了类user_table。然后,您可以使用它来定位。此外,鉴于您说您将有几行带有#NoteAccessor,您应该将 更改为id="NoteAccessor"class="NoteAccessor"因为 id 必须是唯一的,否则它是无效的 HTML。此外,jQuery 只返回第一个具有匹配 id 的元素。

你最终得到的脚本是直接的,然后parent()像以前一样使用,但现在你也可以使用prevAll()指定类选择器:

$(document).ready(function () {
    // using class ".NotesAccessor" instead of id "#NotesAccessor" 
    // as element is repeated in each tr
    $(".NotesAccessor").click(function () {
        var notes_name = $(this).parent().prevAll('.user_table').html();
        alert(notes_name);
    });
});

演示- 使用parent()prevAll('.user_table')


于 2013-02-10T00:06:17.357 回答