私はサイト用に事前に作成されたモジュールに取り組んでおり、test:two
というIDの要素をターゲットにする必要があります。現在、この要素にはコロンが含まれているため、jQueryはおそらく「理解しやすい」ように「2」を疑似クラスと見なしています。 jQueryでこの要素をターゲットにする方法はありますか?
また、IDの変更はできません。私を信じてください。
私は例をまとめました:
$('#test').css('background','red');
$(document.getElementById('test:two')).css('background','blue');
$('#test:two').css('background','green');
<script src="//code.jquery.com/jquery-1.6.3.js"></script>
<div id="test">test</div>
<div id="test:two">test two</div>
From jQuery ID Selector docs :
Idにピリオドやコロンなどの文字が含まれている場合は、 バックスラッシュでこれらの文字をエスケープする にする必要があります。
バックスラッシュ自体は文字列でエスケープする必要があるため、次のようにする必要があります。
_$("#test\\:two")
_
_$('#test').css('background','red');
$(document.getElementById('test:two')).css('background','blue');
$('#test\\:two').css('background','green');
_
_<script src="//code.jquery.com/jquery-1.6.3.js"></script>
<div id="test">test</div>
<div id="test:two">test two</div>
_
組み込みのCSS.escape(...)
関数を使用するオプションも利用できるようになりました。これは、セレクター式の中で特別な意味を持つ可能性のある文字を処理します。
_$("#" + CSS.escape("test:two"))
_
_$('#test').css('background','red');
$(document.getElementById('test:two')).css('background','blue');
$("#" + CSS.escape("test:two")).css('background','green');
_
_<script src="//code.jquery.com/jquery-1.6.3.js"></script>
<div id="test">test</div>
<div id="test:two">test two</div>
_
attribute equals selector を使用します。
$('[id="test:two"]')
属性セレクターを使用してみてください
$(document).ready(function() {
$('div[id="test:two"]').each(function() {
alert($(this).text());
});
});