我正在尝试使用jQuery这样删除表行
function removeTableRow(trId){
$('#' + trId).remove();
}
但是,如果id包含“%”,“^”,“&”,“,”等字符,则无效。
你知道有没有解决这个问题?
答案 0 :(得分:16)
我相信原因可以在这里找到:What are valid values for the id attribute in HTML?
然而,除了明显的(改变你的ids)之外,我不太确定一个解决方法
答案 1 :(得分:12)
HTML 4.0 ID不能包含这些字符and be valid at the same time:
ID和NAME类型的属性值 必须以范围内的字母开头 可以跟随A-Z或a-z 字母(A-Za-z),数字(0-9), 连字符(“ - ”),下划线(“_”), 冒号(“:”)和句号(“。”)。这些 值区分大小写。
如果必须,可以试试这个:
function removeTableRow(trId) {
$(document.getElementById(trId)).remove();
}
我建议修复HTML。
答案 2 :(得分:8)
我不建议在id字符串中使用这些字符。但是,如果您认为有必要,则需要使用\\
来转义选择器中的字符。
<table>
<tr id="b%b">
<td>hello</td>
</tr>
<tr>
<td>world</td>
</tr>
</table>
function removeTableRow(trId){
$('#' + trId).remove();
}
removeTableRow( "b\\%b" );
答案 3 :(得分:4)
如果在许多表中有多行要通过其他属性(如类或组)删除它们,那就更好了。
以下是如何删除via group属性的示例:
$("table tr[group='"+groupname+"']").remove();
我希望这会有所帮助。
答案 4 :(得分:0)
我不确定它是否有用,但你可以尝试一下
var id = "id%#&hh";
$("tr").each(function(){
if($(this).attr("id") == id){
$(this).remove();
return;
}
});