0

看一下这个

http://jsfiddle.net/ANygj/

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

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

我怎样才能使这项工作?

4

4 回答 4

2

试试closest('tr')吧。

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

演示:http: //jsfiddle.net/ANygj/1/

于 2012-09-11T18:52:47.683 回答
1

您将事件绑定到的元素是select. 父级select不是元素。您应该使用来访问:trclosest()tr

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

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

JS 小提琴演示

这样做的原因是parent(),正如方法名称所暗示的那样,它查找当前元素的父元素,如果父元素与方法中传递的选择器匹配,则继续。

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

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

于 2012-09-11T18:53:01.353 回答
0

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

$(this).parents('tr').find('.price').text();
于 2012-09-11T18:54:50.593 回答
0

应该比closest根据http://jsperf.com/jquery-parents-vs-closest/8使用的要快一些

于 2012-09-11T18:59:04.010 回答