使用JQuery仅选择所选div的父级

时间:2016-01-25 19:09:28

标签: javascript jquery html

我试图选择一个div,exacly选择div的父级但没有成功...我的代码选择了所选div之上的所有div,这是错误的,我怎么能以正确的方式做到这一点? 我想实现一个简单的搜索行为......

<script>**$(".emoticons-row").hide();**</script>
<div class="emoticons-row">
    <div class="emoticons-col emoticon"><img title="Smile" src="./images/smile.png" alt="Smile"></div>
    <div class="emoticons-col emoticon">:)</div>
    <div class="emoticons-col desc">Smile, Smiling</div>
    <script>**$(".desc:contains('Sorriso')").parent().show();**</script>
    <div class="emoticons-col action"><input type="button" value="copy" /></div>
</div>
<div class="emoticons-row">
    <div class="emoticons-col emoticon"><img title="Sad" src="./images/sad.png" alt="Sad"></div>
    <div class="emoticons-col emoticon">:(</div>
    <div class="emoticons-col desc">Sad</div>
    <div class="emoticons-col action"><input type="button" value="copy" /></div>
</div>

3 个答案:

答案 0 :(得分:1)

&#13;
&#13;
$(document).ready(function() {
  $(".emoticons-row").hide();
  $(".desc:contains('Smile')").parents("div.emoticons-row").show();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="emoticons-row">
  <div class="emoticons-col emoticon">
    <img title="Smile" src="./images/smile.png" alt="Smile">
  </div>
  <div class="emoticons-col emoticon">:)</div>
  <div class="emoticons-col desc">Smile, Smiling</div>
  <div class="emoticons-col action">
    <input type="button" value="copy" />
  </div>
</div>
<div class="emoticons-row">
  <div class="emoticons-col emoticon">
    <img title="Sad" src="./images/sad.png" alt="Sad">
  </div>
  <div class="emoticons-col emoticon">:(</div>
  <div class="emoticons-col desc">Sad</div>
  <div class="emoticons-col action">
    <input type="button" value="copy" />
  </div>
</div>
&#13;
&#13;
&#13;

在此处查看此小提琴:How to config nltk data directory from code?

您可以使用.parents(&#39; div.emoticons-row&#39;)方法在div的所有父级中查找特定父级。

答案 1 :(得分:0)

向子元素添加一个单击处理程序并定位其父元素:

$( ".emoticons-col" ).on( "click", function() {
 var target = $(this).parent(); //This is the ref to the parent of the row you clicked
 target.hide(); //hide the parent and it's children
});

无论您点击哪个孩子,它总是会将父div分配给您可以随意执行的“目标”变量。在这种情况下,Target var是对父div的引用。如果您单击任何子项,它将在单击时隐藏父项及其子项。

答案 2 :(得分:0)

如Casey所述,您可以使用jQuery的closest方法来执行此操作:

$(".desc:contains('Smile')").closest(".emoticons-row");