jQuery删除具有非标准id字符的表行

我试图使用像这样的jQuery删除表行

function removeTableRow(trId){ $('#' + trId).remove(); } 

但是,如果id包含“%”,“^”,“&”,“,”等字符,则无效。

你知道这有什么工作吗?

我相信其原因可以在这里找到: HTML中id属性的有效值是什么?

但是我不太确定除明显之外的解决方法(更改你的ID)

HTML 4.0 ID不能包含这些字符并且同时有效 :

类型ID和NAME的属性值必须以AZ或az范围内的字母开头,后跟字母(A-Za-z),数字(0-9),连字符(“ – ”),下划线(“_ “),冒号(”:“)和句号(”。“)。 这些值区分大小写。

如果必须,你可以试试这个:

 function removeTableRow(trId) { $(document.getElementById(trId)).remove(); } 

不过,我建议修复HTML。

我不建议在id字符串中使用这些字符。 但是,如果您认为有必要,则需要使用\\来转义选择器中的字符。

示例: http : //jsfiddle.net/NuWSp/

 
hello
world
function removeTableRow(trId){ $('#' + trId).remove(); } removeTableRow( "b\\%b" );

如果它是多个表中的几行,通过另一个属性(如类或组)删除它们会更好。

以下是如何删除via group属性的示例:

 $("table tr[group='"+groupname+"']").remove(); 

我希望这有帮助。

我不确定它是否会起作用,但你可以尝试一下

 var id = "id%#&hh"; $("tr").each(function(){ if($(this).attr("id") == id){ $(this).remove(); return; } });