![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
タブパネルを作成する以下のコードで分からない個所があります。
実際のページは→(http://editors.ascii.jp/m-kobashigawa/jqsample/c …)
$(function(){
$("ul.panel li:not("+$("ul.tab li a.selected").attr("href")+")").hide();
$("ul.tab li a").click(function(){
$("ul.tab li a").removeClass("selected");
$(this).addClass("selected");
$("ul.panel li").hide();
$($(this).attr("href")).show();
return false;
});
});
分からないのは2行目の ("+$("ul.tab li a.selected").attr("href")+") です。
+(プラス)が前後に付いていますが、これがどういう意味なのか分かりません・・・
どうかご指南お願いいたします!
No.2ベストアンサー
- 回答日時:
分解してみますと、こうですね。
$(
"ul.panel li:not("
+
$("ul.tab li a.selected").attr("href")
+
")"
).hide();
以下の文と同じです。
var href = $("ul.tab li a.selected").attr("href");
var e = "ul.panel li:not(" + href + ")";
$(e).hide();
再度のご回答感謝いたします!
初心者なもので、もう少し質問してもよろしいでしょうか・・・?
まず教えていただいた1行目の、「var href = $("ul.tab li a.selected").attr("href");」ですが、
ulタグのtabクラスのli aタグのselectedクラスのhref属性を取得し
変数hrefに代入するということですよね。
初期設定では、#tab1にselectedがありますので変数href=#tab1になる、
という理解で宜しいでしょうか。
それで2行目の「var e = "ul.panel li:not(" + href + ")";」ですが
ulタグのpanelクラスのliタグの中で変数href(=#tab1)の無いものを
変数eに代入するという理解で宜しいでしょうか。
そして3行目の「$(e).hide();」では
#tab1以外のpanel(#tab2から5)の消去を命令するということだと思うんですが
2行目で+をつけていますが、+を書かずにhrefだけではダメなのでしょうか?
やはり+の有無がどう作用するのかがきちんと理解できません・・・
No.3
- 回答日時:
引数が文字列ということは理解されてますか。
href属性は文字列ですよね。
>var href = $("ul.tab li a.selected").attr("href");
そしてその前後もダブルクォートで囲われているので文字列です。
>var e = "ul.panel li:not(" + href + ")";
>+を書かずにhrefだけではダメなのでしょうか?
var str = "AAA" + "BBB";
alert(str);
こう書けば、その結果は"AAABBB"になります。
"AAA" "BBB"と書けば、構文エラーが出ますね。
プログラム(インタプリタ)は、「二つの連続した文字列をどう処理したらいいかわからない」からです。
そこで+演算子を書いて、「この二つの文字列は連結してください」と伝えます。
実行部分の動作はほぼ合っていると思います(変数eはただの文字列ですが…。セレクターに渡すことで初めてオブジェクトになります $(e))。
何度も答えていただき申し訳ありません。
>ダブルクォートで囲われているので文字列です
そうでしたね!
ようやく+でつなげる意味が分かりました!
丁寧なご説明ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS インラインブロックの中のテキストを上下中央に合わせたい 1 2022/12/24 17:46
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
tableのtr要素をドラッグ&ドロ...
-
jQuery 複雑なswitch文を作りたい
-
Ajaxの評価プログラムについて
-
readyStateが4にならない原因
-
CSVファイルの文字列の表示につ...
-
C#、foreachを使ってハッシュテ...
-
Javascriptを使ってQRコード読...
-
Fire Foxで作動しないscriptが...
-
JavascriptからPHPへのAjax通信...
-
FullCalendar の複数月表示につ...
-
階層別の組織図の自動作成について
-
複数対応できるチェックボック...
-
たくさんの経由地がある巡回ル...
-
EPS で相対座標で円を書く方法
-
JavaScriptでtabindexの変更っ...
-
jQuery 並列load処理
-
スクリプトの外部からの読み込み
-
絞り込み検索の後にソートを追...
-
ドラッグ & ドロップでのド...
-
数字をピクチャボックスの上に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
readyStateが4にならない原因
-
C#、foreachを使ってハッシュテ...
-
変数の内容を別functionに渡したい
-
スライドを最後の画像で止めたい
-
Google Apps Scriptを利用した...
-
ページ内リンクで#などのアンカ...
-
【再質問】計算(入数*単価)...
-
tableのtr要素をドラッグ&ドロ...
-
CSVファイルの文字列の表示につ...
-
jqueryでタグの中にある文字が...
-
Ajaxの結果のページングの方法
-
Selenium4でボタンをクリックで...
-
JavascriptからPHPへのAjax通信...
-
Javascriptを使ってQRコード読...
-
SQLのmaxで求めた値を変数に代...
-
JavaScriptでtabindexの変更っ...
-
インラインフレームを自動更新...
-
jQueryを使いformでsubmitした...
-
同一ページ移動時ハンバーガー...
-
ドラッグ & ドロップでのド...
おすすめ情報