2

快速而愚蠢的 jQuery 选择器问题。

为什么这不起作用jsFiddle 演示

//config
var ThisTable = $('.ReallyLongSillyTableName');


// Function
$(ThisTable + ' > tbody > tr > td:last-child').each(function() {
    $(this).append('Sales Orders: ');
});

但是,这确实有效jsFiddle demo

$('.ReallyLongSillyTableName td:last-child').each(function() {
    $(this).append('Some Text');
});

任何建议都非常感谢。

4

4 回答 4

7

你可以使用这个:

$('tbody > tr > td:last-child', ThisTable).each(function() {
    $(this).append('Sales Orders: ');
});

或这个:

ThisTable.find('tbody > tr > td:last-child').each(function() {
    $(this).append('Sales Orders: ');
});
于 2012-06-25T14:27:01.723 回答
2

尝试如下,

ThisTable.find('tbody > tr > td:last-child').each(function() {
    $(this).append('Sales Orders: ');
});
于 2012-06-25T14:27:08.667 回答
2

$('.ReallyLongSillyTableName');是一个 jQuery 对象,所以你不能将它用作字符串。

所以试试

var ThisTable = '.ReallyLongSillyTableName';


// Function
$(ThisTable + ' > tbody > tr > td:last-child').each(function() {
    $(this).append('Sales Orders: ');
});

$(ThisTable + ' td:last-child').each(function() {
    $(this).append('Some Text');
});

并且您可以ThisTable如上所述使用或$(ThisTable)(使其成为 jquery 对象)用于其他目的。

于 2012-06-25T14:27:36.390 回答
0
  1. var ThisTable = $('.ReallyLongSillyTableName');是 jQuery 对象(javascript 对象)

  2. $(ThisTable + ' > tbody > tr > td:last-child') 在这里()你有javascript对象+字符串,不会给你完整的字符串(不是字符串+字符串!)

  3. 你需要var ThisTable = '.ReallyLongSillyTableName';

于 2012-06-25T14:36:14.770 回答