3

重複の可能性:
IDにドットが含まれている場合にjqueryを使用してIDでhtmlノードを選択するにはどうすればよいですか?

私はjqueryモーダルを持っています、機能はプロファイルボックスを表示することです。

<a rel="Modal" href="#<?php echo $username; ?>">Profile</a>

これまでのところ、ユーザー名がIDドット(。)を使用していなくても問題ありません。

<div id=<?php echo $username; ?>

IDドット(。)を使用するユーザー名の場合、問題が発生します(例)john.doe。ボックスには何も表示されません。

では、どうすればそれを設定できますか?

親切な助けをありがとう。

4

4 に答える 4

1

モーダルを表示しているJavascriptを実際に表示することはありませんが、jQueryを使用する場合.は、セレクターでエスケープする必要があります。

于 2012-11-16T05:06:15.870 に答える
1

を使用し$('#john\\.doe')ます。ChromeとFFで動作しているようです。

于 2012-11-16T05:14:29.247 に答える
1

迅速で汚い解決策は、問題のある文字を問題の少ないものに変換することです。例えば

<?php $normalisedUsername = htmlspecialchars(
    str_replace('.', '_', $username), ENT_QUOTES); ?>

<a rel="Modal" href="#<?php echo $normalisedUsername; ?>">Profile</a>

<!-- snip -->

<div id="<?php echo $normalisedUsername ?>"> ...

.ID属性内で完全に有効であるため、これはダーティだと言います。より良い解決策は、モーダルコンテンツの検索に使用されるjQueryコードを変更することです。これを行う範囲は、モーダルユーティリティが自分で作成したものか、jQueryUIやBootstrapなどのライブラリの一部であるかによって完全に異なります。

たとえば、BootstrapのModaldata-targetを使用している場合は、トリガーの属性に適切なエスケープを追加できます。

<button type="button" data-toggle="modal" data-target="#john\\.doe">Launch modal</button>
于 2012-11-16T05:17:10.170 に答える
0

使用してみてください:

echo str_replace($search, $replace, $subject)

これが詳細なチュートリアルです。

于 2012-11-16T05:35:59.193 に答える