在jquery中使用parent()时不选择td

时间:2012-09-11 18:50:38

标签: jquery

检查出来

http://jsfiddle.net/ANygj/

当您选择一个值时,它应该提醒价格。它没有,它警告空?喜欢它没有选择正确。

我尝试使用parent()和parent(),似乎没什么区别。

我该如何做到这一点?

4 个答案:

答案 0 :(得分:2)

请尝试closest('tr')

var price = qty.closest('tr').find('td.price').text();

DEMO: http://jsfiddle.net/ANygj/1/

答案 1 :(得分:1)

您要将事件绑定到的元素是selectselect的父级是 tr元素。您应该使用closest()转到tr

$(document).ready(function(){
    $('.qty').change(function(){
        var qty = $(this);
        var price = $(qty).closest('tr').find('td.price').text();

        alert(price);
    });
});​

JS Fiddle demo

原因是parent()(如方法名称所暗示的那样)查看当前元素的父元素,并在父元素与方法中传递的选择符匹配时继续。

closest()查找DOM util,它找到第一个与传递给方法的选择器匹配的祖先元素。

还有parents(),它查找当前元素的祖先,然后返回与传递给方法的选择器匹配的所有元素。

答案 2 :(得分:0)

使用“父母”,而不是“父母”

$(this).parents('tr').find('.price').text();

答案 3 :(得分:0)

根据{{​​3}}

THIS应比使用closest略快