javascript - 在jquery中通过类名获取div id

标签 javascript jquery html css

我正在尝试使用 jquery 获取类名为“heading”的 div 的 ID。之后我想将该 ID 传递给后面的代码并使用它。

在我点击我的链接后,JS 函数被调用,但我想我在它的内部做得不好,因为我得到了 ar 变量的空值而不是“16”。

有人可以帮我解决这个问题吗?我是 jquery 的新手,我仍然不太了解它的所有可能性。

这是我的 HTML:

<div class="heading" id="16"><span>Nemanja Mosorinski</span><i>+</i></div>
<div class="details">
    <ul class="form">
        <li>
            <label>Name:</label><input type="text" class="in-text" /></li>
        <li>
            <label>Hours per week:</label><input type="text" class="in-text" /></li>
    </ul>
    <ul class="form">
        <li>
            <label>Username:</label><input type="text" class="in-text" /></li>
        <li>
            <label>Email:</label><input type="text" class="in-text" /></li>
    </ul>
    <ul class="form last">
        <li>
            <label>Status:</label><span class="radio"><label for="inactive">Inactive:</label><input type="radio" value="1" name="status" id="Radio5" /></span><span class="radio"><label for="active">Active:</label><input type="radio" value="2" name="status" id="Radio6" /></span></li>
        <li>
            <label>Role:</label><span class="radio"><label for="admin">Admin:</label><input type="radio" value="1" name="status" id="Radio7" /></span><span class="radio"><label for="worker">Worker:</label><input type="radio" value="2" name="status" id="Radio8" /></span></li>
    </ul>
    <div class="buttons">
        <div class="inner"><a href="javascript:;" id="updateMember" class="btn green">Save</a> <a href="javascript:;" class="btn red">Delete</a> <a href="javascript:;" class="btn orange">Reset Password</a></div>
    </div>
</div>

这是我的脚本:

<script type="text/javascript">
    $(function () {
        $('#updateMember').click(function () {
            $('.heading').closest(function () {
                var ar = this.id;
                $.ajax({
                    type: "POST",
                    url: 'team-members.aspx/UpdateTeamMember',
                    data: "{'ID':'" + ar + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: fnsuccesscallback,
                    error: fnerrorcallback
                });
            });
        });
        function fnsuccesscallback(data) {
            alert(data.d);
        }
        function fnerrorcallback(result) {
            alert(result.statusText);
        }
    });
</script>

最佳答案

我认为您的意思不是将整个功能传递给 closest()

不过,我们可以使用 #updateMember 的上下文遍历(通过 .closest().prev() )到最近的 .header,并得到它的 id 使用 .prop() .

此外,传递给 $.ajax()data 属性接受对象文字。

以下情况如何:

$(function () {
    $('#updateMember').click(function () {
        var ar = $(this).closest('.details').prev('.heading').prop('id');
        $.ajax({
            type: "POST",
            url: 'team-members.aspx/UpdateTeamMember',
            data: {"ID" : ar},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: fnsuccesscallback,
            error: fnerrorcallback
        });
    });
    function fnsuccesscallback(data) {
        alert(data.d);
    }
    function fnerrorcallback(result) {
        alert(result.statusText);
    }
});

注意:请使用控制台进行调试(这就是它在那里的原因!)使用 alert() 会导致比它清除的更多的困惑。

关于javascript - 在jquery中通过类名获取div id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27038690/

相关文章:

javascript - 安装和使用 Node JS

javascript - 用 '.' 填充整个主体的 jQuery 代码

javascript - JQuery html() 和模板

java - 向工具提示文本添加带有斜体字体样式的彩色字符串

php - iPhone 放大网站

javascript - 将我的函数式 JavaScript 代码转换为面向对象的设计是否值得?

javascript - 使用 'clipboard.js' 不带按钮将文本复制到剪贴板

javascript - 自动刷新页面特定

javascript - 通过javascript在滚动上添加一个css类

android - 响应式菜单的奇怪行为