【问题标题】:Jquery: not removing rows from html tableJquery:不从html表中删除行
【发布时间】:2014-07-25 03:11:47
【问题描述】:

我有一个 html 表,我需要根据函数传递的 id 删除一些行。

这是我的代码:

<html>
    <script>
    function myfunc(){
        var dat ="6|21|22|"; // this string is a dynamic string coming 
                             // from another function. I've hardcoded it 
                             // for clarity
        var aryDat0 = dat.split('|');
        //delete empty elements
        var aryDat = aryDat0.filter(function(v){return !!v}); 
        for (var i = 0, l = aryDat.length; i <l; i++) {
          $( "'#" + aryDat[i] + "'" ).remove();
        }
    }
    </script>
    <table name="mytab" border="1px">
        <tr id="6"> 
            <td>6</td>
            <td>ada</td>
        </tr>
        <tr id="21">
            <td>21</td>
            <td>eda</td>
        </tr>
        <tr id="22">
            <td>22</td>
            <td>ida</td>
        </tr>
    </table>
    <input type="button" value="test" 
           onclick="javascript:myfunc(); return false;">
</html>

当我按下“测试”按钮时,什么也没有发生,我进入了 Chrome 的控制台:

Uncaught Error: Syntax error, unrecognized expression: '#6' 

为什么? 如果不是:

$( "'#" + aryDat[i] + "'" ).remove();

我愿意:

$('#21').remove();

效果很好。

【问题讨论】:

  • 调试代码的第一种方法是编写干净的代码!我编辑了您的邮政编码以提高可读性!

标签: jquery html-table row removeclass


【解决方案1】:

此错误未捕获的错误:语法错误,无法识别的表达式:'#6' 明确指出 $("'#6'") 是无效的 Jquery 选择器

试试,

$( "#" + aryDat[i]).remove();

【讨论】:

  • + "" 确实很有用。
  • 哈哈哈,太好了!万分感谢!一会儿我会接受你的回答。再次感谢!
  • @dystroy MR.OP,请不要注意......:D
【解决方案2】:

只需将 id 值连接到 #

 $( '#' + aryDat[i]  ).remove();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2012-01-16
    相关资源
    最近更新 更多