Подтвердить что ты не робот

JQuery удалить строку таблицы с нестандартными идентификационными символами

Я пытаюсь удалить строку таблицы, используя jQuery, как это

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

Однако это не работает, если идентификатор содержит символ типа "%", "^", "&", "," и т.д.

Знаете ли вы, есть ли какая-нибудь работа для этого?

4b9b3361

Ответ 2

Идентификаторы HTML 4.0 не могут содержать эти символы и быть действительными одновременно:

Значения атрибутов идентификатора типа и NAME должен начинаться с буквы в диапазоне A-Z или a-z и может сопровождаться буквы (A-Za-z), цифры (0-9), дефисы ( "-" ), подчеркивания ( "_" ), colons ( ":" ) и периоды ( "." ). Эти значения чувствительны к регистру.

Если вам нужно, вы можете попробовать следующее:

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

Я бы рекомендовал исправление HTML.

Ответ 3

Я бы не предложил использовать эти символы в строке 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" );

Ответ 4

Лучше, если несколько строк во многих таблицах удалить их через другой атрибут, например класс или группу.

Вот пример того, как удалить атрибут группы:

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

Надеюсь, это поможет.

Ответ 5

Я не уверен, что это сработает, но вы можете попробовать его

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