jquery 如何获取行下拉列表中表行第一项的值

ggazkfy8  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(195)

我想通过 AJAX 提交jQuery中的一些数据。我有一个表,每一行的第一个元素都有一个排序类,值是客户端的id。最后一个元素是下拉列表。当点击下拉列表时,on-change事件被触发,我可以获得下拉列表的选定值,但我一直在努力获得客户端的id值。下面是我的代码

<table id="clients" class="table table-striped table-bordered table-hover">
    <thead>
        <th>id</th>
        <th>option</th>
    </thead>
    <tbody>
        <tr>
            <td class="sorting">1</td>
            <td>
                <select class="option" name="option">
                    <option value="0">Please Choose...</option>
                    <option value="y">Yes</option>
                    <option value="n">No</option>
                </select>
            </td>
        </tr>
        <tr>
            <td class="sorting">2</td>
            <td>
                <select class="option" name="option">
                    <option value="0">Please Choose...</option>
                    <option value="y">Yes</option>
                    <option value="n">No</option>
                </select>
            </td>
        </tr>
    </tbody>
<table>

<script>
    $(document).ready(function() {
        $( "#clients" ).on("change", ".option", function() {
            option = this.value;
            alert( $( this ).parent().find( '.sorting' ).val() );
        });
    });
</script>

我已经尝试了一些方法来获取这个id,但是没有任何效果。主要是(就像在这个例子中)警告说undefined。
我还没有完成 AJAX post请求,我对它很熟悉,但是如果我不能得到改变了值的id,那就没有意义了。
谢谢

plicqrtu

plicqrtu1#

尝试更具体地找到你的选择器。parent()只给予你一个级别的父元素,所以你得到的是td而不是tr。相反,parent()使用parents('tr ')来得到tr元素。记住td没有任何值,所以你需要使用text()方法来得到文本。

<script>
$(document).ready(function() {
    $( "#clients" ).on("change", ".option", function() {
        option = this.value;
        alert( $( this ).parents('tr').find( '.sorting' ).text() );
    });
});

相关问题