Jquery 单击后选择上一个元素
Jquery Selecting Previous Element After Click
<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 语法示例。我想要实现的是当 "a" 标签被点击时,我想找到 "h2" 元素的文本。
例如,当点击"a"标签时,h2的文本"Hurry Up!"应该显示在控制台中。
我试过了,但没用:
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 文本应该属于单击它的容器,因此我正在通过 'this' 尝试它。
试试这个:
<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
}
试试这个
function clicked(element){
var title = $(element).closest('div').find('h2').html();
console.log(title);
alert(title);
}
<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>
function clicked(element) {
var title = $(element).closest('ul').prev('h2').text();
console.log(title);
}
<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>
使用.closest()
获取ul然后使用.prev()
获取h2
如果您不是在寻找模块化答案,您可以试试这个:
function clicked(){
var title = $(".well h2").text();
console.log(title);
}
<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 语法示例。我想要实现的是当 "a" 标签被点击时,我想找到 "h2" 元素的文本。
例如,当点击"a"标签时,h2的文本"Hurry Up!"应该显示在控制台中。
我试过了,但没用:
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 文本应该属于单击它的容器,因此我正在通过 'this' 尝试它。
试试这个:
<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
}
试试这个
function clicked(element){
var title = $(element).closest('div').find('h2').html();
console.log(title);
alert(title);
}
<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>
function clicked(element) {
var title = $(element).closest('ul').prev('h2').text();
console.log(title);
}
<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>
使用.closest()
获取ul然后使用.prev()
获取h2
如果您不是在寻找模块化答案,您可以试试这个:
function clicked(){
var title = $(".well h2").text();
console.log(title);
}