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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

5512閲覧

buttonタグのtitle属性を押下ごとに切り替えたい

k499778

総合スコア599

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/04/16 17:19

現在HTML,JavaScript(jQuery)を使ってボタンを作成しています。
ボタン押下ごとにtitle属性の中身を切り替えたいです。

それをHTMLのみで完結させる方法はあるでしょうか?

JavaScriptでできるのはわかるのですが、HTMLだけでもし何かできる方法があればいいなと思い、お聞きさせていただきました。三項演算子のようなものをHTMLに記述して、onクラスがあるときはtitle="on"、それ以外はtitle="off"、
みたいなことはできないでしょうか?

JavaScriptでは以下のコードで実現できたので、HTMLだけでもし完結できる方法がわかる方がいらっしゃれば教えていただきたいと思います。

HTML

1 2<!DOCTYPE html> 3<html> 4<head> 5<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 6</head> 7<body> 8<button type="button" title="on" id="switch" class="on">OK</button> 9</body> 10<script> 11var switchFlg =true; 12$("#switch").on("click", function(){ 13 if(switchFlg){ 14 $(this).removeClass("on").addClass("off"); 15 $(this).text("off"); 16 // $(this).prop("title","off"); 17 switchFlg =false; 18 }else{ 19 $(this).removeClass("off").addClass("on"); 20 $(this).text("on"); 21 // $(this).prop("title","on"); 22 switchFlg =true; 23 } 24}); 25</script> 26</html> 27

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

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

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

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

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

guest

回答2

0

ベストアンサー

htmlでDOM操作はできません。

html

1<!DOCTYPE html> 2<html> 3 <head> 4 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 5 </head> 6 <body> 7 <button type="button" title="on" class="toggle">OK</button> 8 </body> 9 <script> 10 $(function () { 11 $(".toggle").on('click', function () { 12 var title = $(this).attr('title'); 13 $(this).attr('title', (title === 'on') ? 'off' : 'on'); 14 }); 15 }); 16 </script> 17</html>

投稿2016/04/16 21:31

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

k499778

2016/04/16 22:25

回答有り難うございます。 ですよね。^^; 3項演算子もjsで制御するというのはもちろんわかっていたのですが、 もしかして何かHTMLで一行とかで簡単に制御出来ないかなあと思って質問しちゃいました。 それがやはりできないということがわかっただけでスッキリしました。ありがとうございます。
guest

0

動きを加えるだけならば CSS でできることも少しはありますが、状態を変更・保持、というのは JavaScript なしには無理だと思います。

ところで、ご提示いただいているコードでは、クリック時に button タグの class を変更して、その「子要素」を変更しているように見えます。「title 属性」を変更、ではなく。
title 属性」を変更したいなら、次のように .attr('title', ...) を使う必要があると思います(とか言って、それ以外もだいぶ変態コードで書き換えちゃいましたが)。

javascript

1$(function() { 2 var table = { on: 'off', off: 'on' }; 3 $('#switch').on('click', function() { 4 var $button, now, next; 5 next = table[now = ($button = $(this)).data('mybutton')]; 6 $button.removeClass(now).addClass(next).attr('title', next).data('mybutton', next)/*.text(next)*/; 7 }).data('mybutton', 'on'); 8});

というのはさておき、title 属性の差し替えを JavaScript なしで実現したい、というのにはどういう目的があるのでしょうか。JavaScript off のブラウザでも実行できるように、なのでしょうか。

投稿2016/04/16 21:09

編集2016/04/16 21:10
unau

総合スコア2468

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

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

k499778

2016/04/16 22:35

回答ありがとうございます! やっぱり状態変更をするにはjsなしでは無理ですよね^^; それが明確に確認できただけでもよかったです。 >title 属性の差し替えを JavaScript なしで実現したい、というのにはどういう目的があるのでしょうか。 実際現場ではこの部分のJavaScript動作を共通のjsを使ってやっているのです。 共通のjsというのは、他の画面でも使っていて、極力私達が手を加えるべきでないところなのです。変更すると申請も必要になってきますし。 なので今回ほぼjsでないとできないだろうなと思ってはいましたが、残りの少ない可能性をかけて質問させていただきました。 jsなしでは厳しいという回答が頂けただけでも一歩前に進むことができました。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問