jQuery nth-child选择器

时间:2011-05-27 10:23:46

标签: jquery jquery-selectors css-selectors

在jQuery中遇到一个小问题,并在表格中选择/样式化列。

以下代码有效:

   $(function() {
      $("table").delegate('th.selcol','click', function(e) {
         var iCol = $(this).parent().children().index(this)+1;
         $("table tr td:nth-child(10)").each(function () {
            $(this).toggleClass("colhighlight");
         });
      });
   });

但是这段代码,将nth-child(10)更改为nth-child(iCol)会产生错误 “未捕获的异常:语法错误,无法识别的表达式:: nth-child”

   $(function() {
      $("table").delegate('th.selcol','click', function(e) {
         var iCol = $(this).parent().children().index(this)+1;
         $("table tr td:nth-child(iCol)").each(function () {
            $(this).toggleClass("colhighlight");
         });
      });
   });

非常感谢任何帮助。

4 个答案:

答案 0 :(得分:14)

     $("table tr td:nth-child(" + iCol + ")").each(function () {
        $(this).toggleClass("colhighlight");
     });

nth-child需要一个整数,而不是字符串,因此您可以使用连接来解决问题。

答案 1 :(得分:3)

试试这个:

"table tr td:nth-child("+iCol+")"

答案 2 :(得分:2)

将其更改为:

  $(function() {
    $("table").delegate('th.selcol','click', function(e) {
       var iCol = $(this).parent().children().index(this)+1;
       $("table tr td:nth-child(" + iCol + ")").each(function () {
         $(this).toggleClass("colhighlight");
       });
    });
  });

答案 3 :(得分:0)

试试这个:

   $(function() {
      $("table").delegate('th.selcol','click', function(e) {
         var iCol = $(this).parent().children().index(this)+1;
         $("table tr td:nth-child("+iCol+")").each(function () {
            $(this).toggleClass("colhighlight");
         });
      });
   });

希望它有效:)