为什么我收到错误“错误:语法错误,无法识别的表达式:不支持的伪:选择”?

时间:2014-05-05 08:39:57

标签: javascript jquery syntax-error

我遵循jQuery代码:

    $(document).ready(function() {
    $('.products').click(function () {
      var table_id = $(this).closest('table').attr('id');            
      var no = table_id.match(/\d+/)[0];            
      var first_row = $(this).closest('table').find('tbody tr:first').attr('id');    
      var new_row = $('#'+first_row).clone();
      var tbody = $('tbody', '#'+table_id);
      var n = $('tr', tbody).length  + 1;
      new_row.attr('id', 'reb' + no +'_'+ n);

      $(':input', new_row).not('.prod_list').remove();
      $(':select', new_row).attr('name','product_id_'+no+'['+n+']');
      $(':select', new_row).attr('id','product_id_'+no+'_'+n);
      $('<button style="color:#C00; opacity: 2;" type="button" class="close delete" data-dismiss="alert" aria-hidden="true">&times;</button>').appendTo( $(new_row.find('td:first')) );
      tbody.append(new_row);
      $('.delete').on('click', deleteRow);
     });
   });

使用上面的代码我在HTML表中附加一个新内容。但是这一行只包含select控件。所以我使用上面的代码将id和name的值设置为该选择控件。在此期间,我在firebug控制台中收到如下语法错误:

"Error: Syntax error, unrecognized expression: unsupported pseudo: select"

如果我删除上面两行,我写了设置id和name值来选择控件,其他代码工作绝对没问题。那么有人可以解决这个问题并允许我设置新创建的行选择控件的id和值吗?感谢

2 个答案:

答案 0 :(得分:11)

没有名为:select的选择器,只有selectelement selector)会做 - 你可能已经尝试过了,因为pseudo selector :input是一个特殊的选择器选择所有输入,选择和textarea元素

$('select', new_row)

答案 1 :(得分:-1)

&#34;:&#34;字符仅适用于伪选择器,如

 $('tr:nth-child)