如何获得特定父母的孩子? JQuery的

时间:2015-10-06 20:42:08

标签: javascript jquery



var subtypechecked = function() {
  var subtype = $(this);
  var evidence = subtype.parent().parent().parent().children("input[name^='Regression.']").fadeOut();
  alert(evidence.context.name);

};
$("input[type=checkbox]").on("click", subtypechecked);

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<div class="row">
  <div class="panel panel-default"></div>
  <div class="panel-heading clearfix"></div>
  <div style="padding-left:15px;padding-top:5px"></div>
  <div class="panel-body" style="padding-top:5px;padding-bottom:5px">
    <label class="checkbox-inline">
      <input type="checkbox" value="1" name="Repression">Repression
    </label>
    <label class="checkbox-inline">
      <label class="checkbox-inline">
        <label class="checkbox-inline">
  </div>
  <div class="panel-body" style="padding-top:5px;padding-bottom:5px">
    <label class="checkbox-inline">
      <input type="checkbox" value="1" name="Repression.Confirmed">Repression.Confirmed
    </label>
    <label class="checkbox-inline">
      <input type="checkbox" value="2" name="Unknown.Confirmed">Unknown.Confirmed
    </label>
    <label class="checkbox-inline">
      <label class="checkbox-inline">
  </div>
</div>
&#13;
&#13;
&#13;

我希望所有名称的元素都以&#34; Repression开头。&#34;。但是,我检查了萤火虫。 &#34;证据&#34;是我点击的按钮。这毫无意义。

2 个答案:

答案 0 :(得分:1)

  

http://api.jquery.com/children/

     

.children()方法与.find()的区别仅在于.children()   在.sind()可以遍历时沿DOM树向下移动一个级别   在多个级别选择后代元素(孙子,   等)。

你正在.children div上执行.row,。children只查看直接desendants,你想要使用.find,它会在dom树中更深入地查看元素。

var evidence = subtype.parent()
              .parent()
              .parent()
              .find("input[name^='Repression.']").fadeOut();

您还使用名称压缩而非回归

答案 1 :(得分:0)

您的问题是context。引用jQuery doc,上下文是:

  

最初传递给jQuery()的DOM节点上下文;如果没有传递,则上下文可能是文档。

因此它将返回传递给jQuery的原始DOM,这是单击的复选框,因为您的选择器找不到与您的查询匹配的任何元素。

您可以改为使用parentsfind

var subtypechecked = function() {
  var subtype = $(this);
  var evidence = subtype.parents('.row')
                 .find("input[name^='Repression.']");

  alert(evidence.attr('name'));

  // fadeOut the parent label to hide the text, as requested
  evidence.parent().fadeOut();

};
$("input[type=checkbox]").on("click", subtypechecked);