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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

207閲覧

javascriptでcssセレクタをマウスでクリックした時と同じ処理を行いたいです。

fama

総合スコア105

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

JavaScript

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/03/01 10:18

編集2020/03/01 16:15

この度、Webページ内の特定のCSSセレクタ(inputタグ)に対して、マウスでクリックを行った際と同じ動作を実現したくコードを記述しております。

3種類の方法を行いましたが、実際にマウスでクリックした時のようにinputのtextエリアに対してクリックされた状態にはならず苦戦致しております。(カーソルが点滅して文字入力が可能となる状態の事となります。)

javascript

1document.querySelector('セレクタ名').focus(); 2document.querySelector('セレクタ名').click(); 3document.querySelector('セレクタ名').selected = true;

html

1<input autocapitalize="sentences" autocomplete="name" autocorrect="on" maxlength="50" name="name" spellcheck="true" type="text" dir="auto" data-focusable="true" class="r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-1inuy60 r-utggzx r-vmopo1 r-1w50u8q r-1lrr6ok r-1dz5y72 r-1ttztb7 r-13qz1uu" value="">

上記以外の方法で、これを実現する方法をご存じの方がいらっしゃいましたらご教授頂けますと幸いです。

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

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

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

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

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

m.ts10806

2020/03/01 10:22

HTMLもご提示ください。
m.ts10806

2020/03/01 10:23

「クリックされた状態」ってそれはあくまでユーザーの操作であって起きてる現象は「フォーカス」ではないんですか?
fama

2020/03/01 10:27 編集

<input autocapitalize="sentences" autocomplete="name" autocorrect="on" maxlength="50" name="name" spellcheck="true" type="text" dir="auto" data-focusable="true" class="r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-1inuy60 r-utggzx r-vmopo1 r-1w50u8q r-1lrr6ok r-1dz5y72 r-1ttztb7 r-13qz1uu" value=""> こちらが対象としているinputタグのHTMLとなります。 マウスでクリック致しますと、入力個所にカーソルが点滅している状態となり文字入力が行えるのですが、上記3つの方法ですと入力個所にカーソルが点滅するという状態とならず困っております。
m.ts10806

2020/03/01 10:39

質問は編集できます。 こちらのコメント欄ではマークダウン使えませんし、デフォルト非表示なので目につきにくいです。
m.ts10806

2020/03/01 10:39

あとクラス名があまり規則性のない文字列になってますが、 何かしらWebフレームワークやテンプレートエンジン使ってますか?
fama

2020/03/01 15:37

了解致しました。編集させて頂きます。 クラス名についてですが、こちら私が制作しているサイトではなく他サイトとなっておりまして、何かしらのWebフレームワークやテンプレートを使用しているのかどうかは定かではございません。
kei344

2020/03/01 15:40

まず「マウスでクリックを行った際の動作」を定義している部分を提示されないと何がしたいかわかりません。
fama

2020/03/01 15:42

ご指摘頂きましてありがとうございます。 マウスでテキストボックスをクリック致しますと、カーソルが点滅し文字の入力が可能となります。 こちら、編集から追記致します。わかりにくく申し訳ございません
kawa0x0A

2020/03/01 16:15

querySelectorでHTML要素を取得する際にはidかclassを参照するようですが実際の引数はどうなっているでしょうか? リファレンスによるとidの場合は先頭に#を、classの場合は先頭に.を付ける必要があるみたいです https://developer.mozilla.org/ja/docs/Web/API/Document/ var el = document.querySelector(".myclass");
fama

2020/03/01 16:18

CSSセレクタを指定しておりますので、以下のようにしております。 document.querySelector('div.r-mk0yit:nth-child(2) > label:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > input:nth-child(1)').focus(); 実際にvalueをいじってみますと値は送信されておりますので、記述には間違えがないのかな?と思っているのですが・・・ document.querySelector('div.r-mk0yit:nth-child(2) > label:nth-child(1) > div:nth-child(1) > div:nth-child(2) > div:nth-child(1) > input:nth-child(1)').value = 'aaa'; これですとvalueに aaa が入っております。
kei344

2020/03/01 16:25

(再掲)まず「マウスでクリックを行った際の動作」を定義している部分を提示されないと何がしたいかわかりません。 CSSなりJavaScriptで動作を規定している箇所のコードを提示してください。
fama

2020/03/01 17:10

ご指摘頂きましてありがとうございます。 知識レベルが低く、動作を規定している個所のコードを見つける事が出来ません。 https://twitter.com/login の画面のログイン情報を入力する個所についての事になります。
kei344

2020/03/01 17:16

それを質問文に入れるべきだと思います。また、ただ動きを再現したいのであれば、その旨書かれたほうがよいです。
fama

2020/03/01 17:31

失礼致しました。大変申し訳ございません。色々とご指摘頂きましてありがとうございます。
guest

回答1

0

ベストアンサー

普通に挙動しています

投稿2020/03/02 00:21

yambejp

総合スコア115010

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

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

yambejp

2020/03/02 00:21

<script> window.addEventListener('DOMContentLoaded', function(e){ document.querySelector('#n1').selected = true; document.querySelector('#n2').click(); document.querySelector('#n3').focus(); }); </script> <select> <option value="">--</option> <option value="1">1</option> <option value="2" id="n1">2</option> <option value="3">3</option> <input type="text" id="n2" onclick="console.log('n2')"> <input type="text" id="n3">
fama

2020/03/02 01:04

アドバイス頂きましてありがとうございます。 試しに、このコメント欄に対して同じ事を行ってみようと思い、このように記述して動かしてみましたが、フォーカスがあたっているように見えません。 document.querySelector('#CommentComment').focus(); 何か間違えていますでしょうか?
yambejp

2020/03/02 01:12

キーボード入力すればいきなりその要素に書き始められませんか?
fama

2020/03/02 02:07

クリックをした時にはカーソルが点滅するのですが、 document.querySelector('#CommentComment').focus(); ですとカーソルが点滅しておらず、キーボード入力を行っても反映されないようです。 クリックをした時にはカーソルが点滅していて、他の focus(); や selected = true; または click(); などはどれを試してもカーソルが点滅するような入力可能状態が確認出来ず困っております。
yambejp

2020/03/02 02:09

とりあえずidがCommentCommentというHTML要素が質問文中にでてこないので これ以上はなんとも・・・
fama

2020/03/02 02:29

こちらTeratailのコメント欄で同じ事をやってみておりましたm(__)m
yambejp

2020/03/02 02:33

補足のやり取りの中にもid=CommentCommentは見当たらないですけど・・? <script> window.addEventListener('DOMContentLoaded', function(e){ document.querySelector('#CommentComment').focus(); }); </script> <input id="CommentComment" autocapitalize="sentences" autocomplete="name" autocorrect="on" maxlength="50" name="name" spellcheck="true" type="text" dir="auto" data-focusable="true" class="r-30o5oe r-1niwhzg r-17gur6a r-1yadl64 r-deolkf r-homxoj r-poiln3 r-7cikom r-1ny4l3l r-1inuy60 r-utggzx r-vmopo1 r-1w50u8q r-1lrr6ok r-1dz5y72 r-1ttztb7 r-13qz1uu" value=""> 上記なら普通にfocusされます
fama

2020/03/02 13:33

ありがとうございます。 色々と申し訳ございませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問