質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

2回答

3868閲覧

[IE]画面表示された時にjsが動かない。findは使えない?

momolength

総合スコア62

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

2クリップ

投稿2021/04/13 04:55

編集2021/04/13 05:04

https://q-az.net/none-jquery-find/

IEのみ、あるjsが動かず調べたらどうやらfindが使えないようなので、下記のように変更しました。

function Test(t) { var apple = $(t).find('#Fruit_id').val();
function Test(t) { var apple = $(t).document.getElementById("Fruit_id").val();

これではエラーというか動かないです。元々のコードはIE以外では動きます。
これは訂正の仕方として合っていますか?

コンソールにこちらのエラーがでます。

DOM7011  このページのコードによって、バックワード キャッシュとフォワード キャッシュが無効になりました。詳細については、http://go.microsoft.com/fwlink/?LinkID=291337 を参照してください。 HTML1300 ナビゲーションが発生しました。 HTML1406 "<?" で始まるタグは無効です。タグの先頭を疑問符にすることはできません。 HTML1524 無効な HTML5 DOCTYPE です。相互運用が可能な形式 "<!DOCTYPE html>" の使用を検討してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2021/04/13 04:58

jQueryを利用していますか? 元ソースでエラーは出ていますか?
think49

2021/04/13 04:58

ブラウザで動作確認してから質問して下さい。 このコードは動作していますか。
Lhankor_Mhy

2021/04/13 04:59

IEでfindが使えない、というのは考えにくいように思えます。 --- それはそれとして、tには何が入っていますか?
m.ts10806

2021/04/13 05:01

htmlも提示してください。 あとid指定で要素を取るなら親からの指定はいらないと思います。特定要素になるので。
m.ts10806

2021/04/13 05:08

コピペで再現できるコードを提示されないことには「そもそも文法エラーで動かない」以上言えることはないです
think49

2021/04/13 05:08

> HTML1406 "<?" で始まるタグは無効です。タグの先頭を疑問符にすることはできません。 そもそも、HTMLではないですね。
shinoharat

2021/04/13 05:09

おそらく、 「IE では Array の find が使えない」 という情報をみて勘違いされたのではないでしょうか? コードを拝見したところ、おそらく jQuery を使用されているように見受けられます。 「jQuery の find」ならば、IEでも問題なく使用できます。
think49

2021/04/13 05:13 編集

IE未対応のjQueryバージョンを使用している可能性があります。 正直、突っ込みどころが多すぎて、もう少しご自身で切り分けしてから質問してもらいたいところです。 「訂正の仕方として合っていますか?」の質問後に動かない事を確認するのは、どう考えても順番がおかしいです。 試せば間違っていることは自明ですよね。
guest

回答2

0

ベストアンサー

参考にされたページの、

カッコ内が ID の場合は普通の状態であれば ID は1つしかありませんので、jQuery 自体もわざわざ find() を用いる必要などなく $("#menu") で十分なはずです。 何らかの理由で jQuery 自体をこのように設定しなくては行けない理由がある場合のみ、以下のように書き換えます。

脱jQuery .find() | q-Az

という部分が参考になると思います。

投稿2021/04/13 05:20

Lhankor_Mhy

総合スコア36960

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

think49

2021/04/13 06:03

この回答はjQuery#findを「使わなくて良い理由」になると思うのですが、「使えない理由」になるのでしょうか。
Lhankor_Mhy

2021/04/13 06:21 編集

もちろん、ならないと思いますし、使えないというのも勘違いだと思います。 上手くいかないのは別のところに原因があるのでは、というのがここに書き込んでいる回答者全員の共通認識では。
think49

2021/04/13 06:26

補足ありがとうございます。 原因はさておき、代替コードの提案が主旨なのですね。
Lhankor_Mhy

2021/04/13 06:39 編集

はい、おっしゃるとおりです。 質問者さんの意図は、「上手くいかないのはfindが動作しないことによるかもしれないので、代替コードで差し替えて原因の絞り込みをしたい」というものだと思います。(だから、代替コードはこれでいいのか、という問いかけになっているのだと思います) jQueryに慣れている方だと、試すまでもなく「それはないな」と感じるとは思いますが、実際に試して確かめてみるのは良いことだと考えています。
think49

2021/04/13 09:59

> 実際に試して確かめてみるのは良いことだと考えています。 同意します。 Lhankor_Mhyさんにいっても仕方がない事ではあるのですが、質問者さんが試さずに質問しているように見受けられるのが一番気になりました。 解決策を教えて頂いたとしても、解決に至るまでの道のり(切り分け方法)を覚えないと、何度でも同じ問題にあたると考えています。 そういう意味で修正依頼が無視されているのが悲しいですね。
Lhankor_Mhy

2021/04/13 10:11

大変失礼ながら、修正依頼欄のあのメンツにがやがやっとコメントを書かれたら、私でも圧を感じますね。逃げ出したくなる気持ちもちょっとわかる…… たぶん、丸投げに見える部分は、「代替コードに差し替えて試してみてもエラーが出たが、代替コードに問題があった場合は原因の切り分けできないので、コードの有効性の担保が欲しい」ということなんじゃないかな、と拝察…… メジャーブラウザで試してみてIEとの差異を見ればいいのですが、そこまで考えが回らなかったのかもしれません。
think49

2021/04/13 10:52 編集

@Lhankor_Mhy さん 正解は質問者さんの中にしかない為、推測が入ったこの返答は反論ではなく、意見交換の一環として受け取っていただければと思います。 > var apple = $(t).document.getElementById("Fruit_id").val(); このコードは jQuery にもコンソール実行時関数(querySelectorのエイリアス)にも適合しない為、「ブラウザによっては動作する為、動かないことに気が付かなかった」という状況はないと考えています。 私の視点では可能性は二択でした。 A. コードの動作確認をせずに質問した B. コードを実行してみたが、エラーがたくさん出てよく分からないので、因果関係を追いかけずに見切り発車で質問した もしも、コードを一つずつ試してみたなら、 $(t).document.getElementById() の時点でTypeErrorが発生するのがわかったはずで、documentプロパティが存在しないことも分かったと思います。 それがわからなかったということは、知っているコードを切り貼りして完成したコードを実行して悩んでいる状況なのではないかと想像しています。 --- 修正依頼が多量にありますが、切り分けの為の「確認」は解決の為の必要経費と認識しています。 私も同じ立場なら修正依頼の対応で大変な思いをするのは間違いありませんが、一つ一つ確認しないと、答えは出ません。 今一つずつ潰していけば、次回質問時にはより気をつけて質問できるので、修正依頼の数は少なくなると思います。 勘のいい人が必要な情報を脳内補完して回答してくれて解決された場合、自己解決できない人になってしまうので、長期的には損をすると考えています。 Lhankor_Mhyさんを責めたいわけではありませんし、各々の回答方針は尊重されるべきだと思います。 ただ、私個人としては質問者に切り分けの視点が抜けているなら、今後も自己解決は出来ないだろうと考えています。
Lhankor_Mhy

2021/04/13 10:59

そうですね、コンソールの見方がわからないようでしたので、原因の切り分けができていないというのはその通りだと思います。 当方の意図としては、findメソッドを除去しても上手く動作しない→他に原因があるのでは?と進んでほしいな、というものでした。正解や解決策を投げる意図ではなく、どちらかというと、これで試していろいろ考えてほしい、と思っていました。 ですので、think49さんのお考えには同意いたしますし、teratailの回答でできる限界についても考えてしまいます。
think49

2021/04/13 11:44

> どちらかというと、これで試していろいろ考えてほしい、と思っていました。 私と @Lhankor_Mhy さんの根底にある方針は同じで - 私は修正依頼した - @Lhankor_Mhy さんは回答した のように、様子見の手段が違っただけなのかな、と思いました。 質問者が手探りで解決策を模索するように、回答者も手探りで質問者の様子を伺う必要があるのかもしれませんね…。
guest

0

$(t).document

は、ちょっと考えにくい書き方です。

投稿2021/04/13 04:59

yambejp

総合スコア116732

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問