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; } });