1. ホーム
  2. jquery

[解決済み] IDにドットが含まれる場合、jqueryでhtmlノードをIDで選択する方法は?

2022-04-15 17:20:11

質問

もし、私のhtmlがこのようなものだったら。

<td class="controlCell">
    <input class="inputText" id="SearchBag.CompanyName" name="SearchBag.CompanyName" type="text" value="" />
</td>

JQueryで#SearchBag.CompanyNameを選択するにはどうしたらよいでしょうか? 私はそれが動作するように取得することはできませんし、私はそれがすべて壊れているドットであることを恐れています。 また、idの名前をすべて変更するのは大変な作業で、可読性が損なわれるのは言うまでもありません。



テーブルはレイアウトのために作られたものではない、という話はやめてください。というのは重々承知しています。 の値やCSSの欠点 を使い、なるべく使うように努力しています。

解決するには?

コメントで @Tomalak さん。

<ブロッククオート

IDセレクタの前にはハッシュ#を付けなければならないので、ここであいまいな点はないはずです。

"#id.class" は、idと別のクラスの両方をマッチングに必要とする有効なセレクタです。有効であり、常に完全に冗長であるとは限りません。

CSSでリテラルな'.'を選択する場合は、エスケープするのが正しい方法です。"#id.moreid". これは一部の古いブラウザ(特にIE5.x)で問題を起こしていましたが、最新のデスクトップ・ブラウザはすべてこれをサポートしています。

同じ方法がjQuery 1.3.2でも使えるようですが、私は十分にテストしたわけではありません。

$('#SearchBag\\.CompanyName');