Jquery单击后选择上一个元素

时间:2016-08-05 05:47:40

标签: jquery html text parent

<div class="container">
 <div class="well">
  <h2>Hurry Up!</h2>
   <ul>
    <li>
     <a onclick="clicked()"></a>
    </li>
    <li>
     <a onclick="clicked()"></a>
    </li>
   </ul>
  </div>
</div>

以上是我的html语法示例。我想要实现的是&#34; a&#34;单击标签,我想找到&#34; h2&#34;的文本。元件。

例如,当&#34; a&#34;点击标签,文字&#34;快点!&#34; h2应该显示在控制台中。

我尝试了这个,但它不起作用:

function clicked(){
        var title = $(this).find('h2').text();
        console.log(title);
}

还有这个:

function clicked(){
        var title = $(this).parentsUntil('.container').find('h2').text();
        console.log(title);
}

在控制台中,没有任何内容,只有空行。

我要添加的内容是我多次使用相同的语法。所以h2文本应该是点击它的容器,因为我正在尝试通过这个&#39;这个。

4 个答案:

答案 0 :(得分:0)

试试这个:

<div class="container">
 <div class="well">
  <h2>Hurry Up!</h2>
   <ul>
    <li>
     <a onclick="clicked(this)"></a>
    </li>
    <li>
     <a onclick="clicked(this)"></a>
    </li>
   </ul>
  </div>
</div>

function clicked(elem){
   var text = $(elem).closest('h2').text();
   // text contains Hurry Up! in it
}

答案 1 :(得分:0)

试试这个

&#13;
&#13;
function clicked(element){
        var title = $(element).closest('div').find('h2').html();
        console.log(title);
        alert(title);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
 <div class="well">
  <h2>Hurry Up!</h2>
   <ul>
    <li>
     <a onclick="clicked(this)" href="#">Click 1</a>
    </li>
    <li>
     <a onclick="clicked(this)" href="#"> Click 2</a>
    </li>
   </ul>
  </div>
</div>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

&#13;
&#13;
function clicked(element) {
  var title = $(element).closest('ul').prev('h2').text();
  console.log(title);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="container">
  <div class="well">
    <h2>Hurry Up!</h2>
    <ul>
      <li>
         <a onclick="clicked(this)">clicked</a>
      </li>
      <li>
        <a onclick="clicked(this)">clicked</a>
      </li>
    </ul>
  </div>
</div>
&#13;
&#13;
&#13;

使用.closest()获取ul,然后使用.prev()获取h2

答案 3 :(得分:0)

如果您不寻找模块化答案,可以试试这个:

 function clicked(){
    var title = $(".well h2").text();
    console.log(title);
  }