
cromeやfirefoxでは正常に動きますが、IEにて一部動いてくれない部分があり困っています。
おかしな点や原因など教えていただきたくご質問させていただきます。
<style>
.that{color:red;}
</style>
<script type="text/javascript">
$(function(){
$('button').click(function(){
$('#list>ul').removeClass('that');
var val = $(this).text();
$('#list>ul li').each(function(){
if($(this).text() == val){
$(this).parent().addClass('that');
};
});
});
});
</script>
html↓
<button>100</button>
<button>200</button>
<button>300</button>
<div id="list">
<ul>
<li>100</li><li>200</li>
</ul>
<ul>
<li>300</li><li>200</li>
</ul>
</div>
クリックしたボタンの数値があるULの色を変えるものです。
100と300をクリックした場合は正常に変わりますが、200をクリックした時に変わらなくなります。
<li>の中で最後に書かれている数値が効かなくなるようで、<li>の100と200を入れ替えると100が効かなくなります。(IEのみ)
原因等わかりましたらよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
> if($(this).text() == val){
の前で $(this).text() の値を
alert($(this).text());
で調べればわかるけど、
<li>200</li> の .text() は "200" ではなくて "200 " が帰ってくる。
変な値が帰ってくるのは IE が Quirks モードで動作しているからかも。
対処方法だけれど、
HTML の初めに DOCTYPE を宣言して IE を標準モードにするか
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
とても勧められないけれど、どうしても Quirks モードのままがいいなら、
UL の閉じタグを改行しないで LI タグのすぐ後ろに書けば、回避できるとおもう。
<ul>
<li>100</li><li>200</li></ul>
<ul>
<li>300</li><li>200</li></ul>
ご回答ありがとうございます。
>"200 "
違う値が返ってくるんですね、標準モードで試してみましたがダメでした。
<ul>
<li>100</li><li>200</li></ul>
このやり方で動作したました!全てのhtmlを変えるとなると現実的ではないですが、
回避する手段を教えていただき大変助かりました。
もう少し探ってみたいと思います、
ありがとうございました!
No.2
- 回答日時:
ようは、これと同じことでは?
http://oshiete.goo.ne.jp/qa/7707134.html
MSお得意の「仕様」なのかも知れませんが、
if($(this).text() == val){
の時にIEだけ切り出して、テキストを読み替えてあげるか、あるいは最初に整理しておくか…
動的に値が変化するのか、実際にテキストの値が取る可能性の範囲がどのようなものかなどを考慮して、自衛手段を講じるしかなさそう。
そうですね・・
これでどうこうしようというのが無理があるというのが理解できた気がします。
自衛手段をとりたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
jQueryプラグインのメガドロッ...
-
大至急!!HPビルダー16の専...
-
jquery 親要素以外の取得
-
jQueryスライドメニューの初歩...
-
jQueryの要素選択について
-
jQueryでスクロールボックスを...
-
jQuery faux-3D Viewportコンテ...
-
jquery 3の倍数のliだけ色を変える
-
カレントページ aタグではなく...
-
タブ切替
-
動画サイトのURLからswfを抜き...
-
jQueryで記事を6列表示にした...
-
javascript 問題と答え
-
VBAでIEのページを(メニュー...
-
ajaxローディングで取得したデ...
-
アクセスが多いページの文字を...
-
サブメニュー表示方法
-
jqueryにてIEでの不具合 each...
-
「サイト内、自動切換えタブ機...
-
JqueryFileTree.js でフォルダ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
jqueryのsortableで一部ソート...
-
同一ページ内で、任意の文字列...
-
タブ切り替えの初期表示について
-
ネストされたチェックボックス...
-
JQueryタブのアクティブ アン...
-
Jquery の slide.toggle で要素...
-
ホームページビルダー17のフ...
-
【javascript で動的に a タグ...
-
javascriptで正規表現の検索が...
-
JavascriptのDOMについて
-
javascript テキストエリアを1...
-
for(var i=0;...) の i の値を...
-
クリックで表示、非表示するメ...
-
jQueryで電卓を作っているのですが
-
js ライブラリ iscrollの利用に...
-
jquery ドロップダウンメニュー...
-
プルダウンのメニュー表示について
-
jQueryのhide,showで中の要素が...
-
gridstack.jsについて教えてく...
-
【HP制作】メールフォームの設...
おすすめ情報