选择器中包含变量的jQuery选择器
快速而愚蠢的jQuery选择器问题 为什么这个不起作用:选择器中包含变量的jQuery选择器,jquery,jquery-selectors,Jquery,Jquery Selectors,快速而愚蠢的jQuery选择器问题 为什么这个不起作用: //config var ThisTable = $('.ReallyLongSillyTableName'); // Function $(ThisTable + ' > tbody > tr > td:last-child').each(function() { $(this).append('Sales Orders: '); }); $('.ReallyLongSillyTableName td:l
//config
var ThisTable = $('.ReallyLongSillyTableName');
// Function
$(ThisTable + ' > tbody > tr > td:last-child').each(function() {
$(this).append('Sales Orders: ');
});
$('.ReallyLongSillyTableName td:last-child').each(function() {
$(this).append('Some Text');
});
但是,这个确实有效:
//config
var ThisTable = $('.ReallyLongSillyTableName');
// Function
$(ThisTable + ' > tbody > tr > td:last-child').each(function() {
$(this).append('Sales Orders: ');
});
$('.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对象,因此不能将其用作字符串
所以试试看
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');
});
您还可以如上所述使用此表
,或者将$(此表)
(使其成为jquery对象)用于其他目的
var ThisTable=$('.ReallyLongSillyTableName')代码>是jQuery对象(javascript对象)
$(此表+'>tbody>tr>td:last child')
这里在()
中有javascript对象+字符串,它不会给出完整的字符串(不是字符串+字符串!)var ThisTable='.ReallyLongSillyTableName'代码>
ThisTable
是对DOM中table
元素的引用。不能将其与字符串连接。您可能需要执行类似于ThisTable.find('selector_goes_here')[…]
这并不完全相同-它不会将tbody
限制为此表的直接子级
@Alnitak-在这种情况下,当.ReallyLongSillyTableName
和任何tbody
子代之间存在其他元素时,它不会限制为直接子级?@NewUser,例如,如果存在嵌套的表,或者匹配的类实际上位于DOM中更高的其他元素上,而不是在表上。@Alnitak确定会使情况过于复杂。当然,我们可以使用$(“>tbody>..”,此表)
但是它被弃用。@VisioN这太可惜了-我认为没有其他有效的方法来指定它。这是唯一的答案(到目前为止)这将正确地强制执行.tableClass>tbody
父子关系。@CodeParadox-在哪里使用此字符串作为jQuery对象?计数时,它是一个字符串。你能想出这种双重模式有用的例子吗?或者这只是副作用(在其他情况下有益)?Thanks@NewUser例如,您可以使用$(ThisTable).filter()
,在这里您可以使用jQuery对象等等。所以使用ThisTable
作为字符串或jquery对象