<div class="ptp-item-container">
<div class="plan">Text I want!</div>
<div class="price">200</div>
<div class="bullet-item">some other text</div>
<div class="cta"> <a class="button" href="javascript:getText()">Go!</a>
</div>
</div>
从按钮我尝试了这个:
function getText(){
alert($(this).parent().parent().children().text() );
}
这不起作用,我知道有办法!这次使用$(this)非常重要。
编辑:这是整个Javascript:
<script>
jQuery(document).ready(function($) {
$(".ptp-button").attr("href", "javascript:getText()");
});
function getText(){
alert($(this).closest('.ptp-item-container').find('.plan').text());
}
</script>
但控制台说&#34; Uncaught TypeError:undefined不是函数VM4092:1(匿名函数)&#34;
我不得不将$(this)作为javascript上的参数:getText($(this))或类似的东西?
答案 0 :(得分:3)
您不应该使用javascript:
href定位它。相反,使用.on()
处理程序,这是处理JQuery上的click事件的正确方法。然后,您就可以使用this
引用:
然后,正如已经回答的那样,使用.closest()
功能:
$('.ptp-item-container').on('click', '.button', function() {
alert($(this).closest(".ptp-item-container").find(".plan").text());
});
答案 1 :(得分:0)
您可以结合使用.closest()
和.find()
:
alert($(this).closest(".ptp-item-container").find(".plan").text());
是值得的