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

Tim*_*hle 23 jquery html-table

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

function removeTableRow(trId){
    $('#' + trId).remove();
}
Run Code Online (Sandbox Code Playgroud)

但是,如果id包含"%","^","&",","等字符,则无效.

你知道这有什么工作吗?

Chr*_*son 16

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

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


Tom*_*lak 12

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

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

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

function removeTableRow(trId) {
    $(document.getElementById(trId)).remove();
}
Run Code Online (Sandbox Code Playgroud)

不过,我建议修复HTML.


geo*_*rge 8

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

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

<table>
    <tr id="b%b">
        <td>hello</td>
    </tr>
    <tr>
        <td>world</td>
    </tr>
</table>


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

removeTableRow( "b\\%b" );
Run Code Online (Sandbox Code Playgroud)