首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Jquery查找父div的id

使用Jquery查找父div的id
EN

Stack Overflow用户
提问于 2009-02-13 13:46:22
回答 8查看 283.1K关注 0票数 100

我有一些像这样的html:

代码语言:javascript
复制
<div id="1">
    <p>
        Volume = <input type="text" />
        <button rel="3.93e-6" class="1" type="button">Check answer</button>
    </p>
    <div></div>
</div>

还有一些类似这样的JS:

代码语言:javascript
复制
$("button").click(function () {
    var buttonNo = $(this).attr('class');
    var correct = Number($(this).attr('rel'));

    validate (Number($("#"+buttonNo+" input").val()),correct);
    $("#"+buttonNo+" div").html(feedback);
});

我真正想要的是如果我不需要在按钮上有class="1“(我知道数字类是无效的,但这是一个WIP!),这样我就可以根据父buttonNo的id来确定div了。在现实生活中,有多个部分看起来像这样。

  1. 如何找到作为按钮父元素的div的id。
  2. 在按钮代码中存储答案的更具语义性的方法是什么?我想让非程序员在不破坏东西的情况下进行复制和粘贴时,尽可能做到万无一失!
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-02-13 14:10:17

您可以在父div上使用event delegation。或者使用closest方法查找按钮的父级。

两者中最简单的可能是最接近的。

代码语言:javascript
复制
var id = $("button").closest("div").prop("id");
票数 212
EN

Stack Overflow用户

发布于 2009-02-13 13:51:40

1.

代码语言:javascript
复制
$(this).parent().attr("id");

2.

肯定有很多种方法!一种可能是隐藏包含答案的元素,例如

代码语言:javascript
复制
<div>
    Volume = <input type="text" />
    <button type="button">Check answer</button>
    <span style="display: hidden">3.93e-6&lt;/span>
    <div></div>
</div>

然后使用类似于上面的jQuery代码来获取它:

代码语言:javascript
复制
$("button").click(function () 
{
    var correct = Number($(this).parent().children("span").text());
    validate ($(this).siblings("input").val(),correct);
    $(this).siblings("div").html(feedback);
});

请记住,如果你把答案放在客户端代码中,他们就会看到它:)最好的方法是在服务器端验证它,但对于范围有限的应用程序来说,这可能不是问题。

票数 47
EN

Stack Overflow用户

发布于 2009-02-13 13:51:28

试试这个:

代码语言:javascript
复制
$("button").click(function () {
    $(this).parents("div:first").html(...);
});
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/545978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档