jquery找到父类

时间:2013-07-29 18:36:31

标签: jquery

我需要使用父级div的类来分配变量。

这是HTML:

<li class="task" id="task_10">
  <div class="10">
    <a href="/tasks/10">
      David Smith
      :
      Demo for Joe
      <br>
    </a><a href="#" rel="taskpopup" id="taskpopup" data-bb="confirm" class="bb-dialog btn-small btn-primary">Update</a>                      
  </div>
</li>

这是我尝试过的:

$("[rel=taskpopup]").click(function() {
  return bootbox.prompt("New Update:", function(result) {
  var taskid;
  if (result === null) {
    return 'false';
  } else {
    taskid = $(this).parent.className;
...

行不通的是:

taskid = $(this).parent.className;

它应该是什么?

谢谢!

3 个答案:

答案 0 :(得分:4)

由于你似乎在使用jQuery,为什么不使用这个(jQuery)方式:

taskid = $(this).parent().attr("class");

以下是您使用JavaScript的方式(如果这是您真正想要的):

taskid = this.parentNode.className

修改

您也可以使用closest

taskid = $(this).closest("div").attr("class");

答案 1 :(得分:2)

您尝试的实际上更接近非jQuery解决方案:

this.parentNode.className;

或:

this.parentElement.className;

答案 2 :(得分:0)

首先,您使用父className的语法是错误的。 其次,你在bootbox.prompt的函数下调用$(this)。 你应该在之前设置它。

$("[rel=taskpopup]").click(function() {
var selector = $(this);
  return bootbox.prompt("New Update:", function(result) {
  var taskid;
  if (result === null) {
    return 'false';
  } else {
    taskid = $(selector).parent().attr("class");