jQuery选择器中带有变量的选择器

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

为什么这不起作用jsFiddle演示

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

但是,这确实有效jsFiddle演示

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

任何建议非常感谢。

你可以使用这个:

 $('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: '); }); 

试试如下,

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

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

所以试试吧

 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对象)用于其他目的。

  1. var ThisTable = $('.ReallyLongSillyTableName'); 是jQuery对象(javascript对象)

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

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