Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择器中包含变量的jQuery选择器_Jquery_Jquery Selectors - Fatal编程技术网

选择器中包含变量的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

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

为什么这个不起作用

//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对象