0

これに関するいくつかの質問を検索しました ( Jquery 検証で html 要素 id/name の特殊文字を処理する方法など)、残念ながらそれは役に立たないか、トリックを理解していませんでした...

.btクラスと idを持つボタンがあるとしましょうmy|id。(または のような他の特別なセパレータ,:;|)

次のような別の要素と一致させるために使用することはできないようです$('#other_'+$('.bt').attr('id'))

ここで例を見ることができます。

私の質問は、これらの特殊文字 ( ,:;|) を送信する方法ですか?

4

4 に答える 4

2

これはうまくいきました:

$('[id="div_' + id + '"]').html(id);

これの代わりに:

$('#div_'+id).html(id);

ここでフィドル

-編集-

の使用法を示す新しいフィドル,:;|

于 2013-03-21T18:24:37.693 に答える
2

これは純粋な jQuery ソリューションからの逸脱ですが、この場合はネイティブdocument.getElementById(...)関数を使用する方が良いのでしょうか?

$(document.getElementById('other_' + $('.bt').attr('id')))

もう少し冗長に読みますが、正規表現をいじるよりも明確/一貫性/安全に見えます。

于 2013-03-21T18:30:44.693 に答える
1

このような?

$('#other_' + $('.bt').attr('id').replace('|', '\\|'));

http://jsfiddle.net/S669p/

于 2013-03-21T18:21:03.460 に答える
1

これはまだセレクターを使用している例ですが、使用idできる特殊文字も許可しています。

$(document).ready(function () {
    $(".bt").on("click", function () {
        var escaped = $(this).attr("id").replace(/([,:;|])/g, "\\$1");
        console.log("escaped: " + escaped);
        $("#other_" + escaped).toggleClass("testing");
    });
});

http://jsfiddle.net/Bz3Kw/1/

于 2013-03-21T18:34:25.597 に答える