如何达到这个元素?

时间:2014-09-30 13:47:40

标签: javascript jquery html css

<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))或类似的东西?

2 个答案:

答案 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());

花一些时间浏览the jQuery API documentation.

是值得的