2010-12-07 6 views
23

このようなjQueryを使ってテーブル行を削除しようとしています。非標準のid文字を持つjQueryのテーブル行を削除する

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

idに "%"、 "^"、 "&"、 "、"などの文字が含まれていると、これは機能しません。 ....

これについて何か回避策があるかどうか知っていますか?

+3

私の知る限り、正当なHTML IDにはこれらの文字を含むことはできません... – Tomalak

+0

はい、これらは違法ですが、jqueryも合法的なもののいくつかで苦労しています –

+0

クラス名を付けて削除します。クラス名 – kobe

答えて

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"); 
12

HTMLこれらの文字and be valid at the same time含めることはできません4.0のID:範囲 AZまたはAZの文字で始まる必要があります型IDとNAME の

属性値をとアンダースコア( "_")、 コロン( ":")、ピリオド( "。" )。これらの 値は大文字と小文字が区別されます。

あなたは、あなたがこの試すことができなければならない場合:

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

を私はしかし、HTMLを固定お勧めします。

0

私はそれが動作するかどうかわからないんだけど、あなたはそれが、このようなクラスやグループなどの別の属性を介してそれらを削除するには、多くのテーブルに複数の行であればそれは良いでしょう

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

それを試すことができます。ここで

は、グループ属性を経由して削除する方法の例です:

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

私はこのことができます願っています。

関連する問題