jQueryでページ内の離れた所にある要素を制御したい!

jQueryを使って離れた場所にある要素を遠隔で操作できる様にしてみる。
今回は左側にボタン。右側にコンテンツ表示部分としていますが、位置は好きなところで使用できます。
更新することも考えて、htmlでは極力クラス名やID名を設定せずにしたいと思います。

まずはhtmlから

<div id="wrapper">
      <div id="bt">
        <p>title1</p>
        <p>title2</p>
        <p>title3</p>
        <p>title4</p>
        <p>title5</p>
      </div>
      <div id="cont">
        <p>内容1</p>
        <p>内容2</p>
        <p>内容3</p>
        <p>内容4</p>
        <p>内容5</p>
      </div>
    </div>

特に変わったことをしていません。

CSSもあっさりと

#wrapper {
	display: flex;
}
#wrapper div {
	flex:1;
	margin: 10px;
	border: 1px solid #999;
}
#bt p {
	margin: 10px;
	padding: 5px;
	border: 1px solid #999;
}

細かいところは書いていません。いい感じにしてくださいね。

最後に問題のjQueryです。

$(function(){
	var btNo;
	$("#cont p:not(:first)").css("display","none");
		$("#bt p").click(function(){
			btNo = $(this).index()+1;
			$("#cont p").css("display","none");
			$("#cont p:nth-child(" + btNo +")" ).css("display","block");
		});
	});

ここでは変数btNoを用意して、その変数にクリックした項目の順番を取得して代入(+1はindex()が0から始まるので1を追加)しています。
そして#cont pのnth-childの値に変数btNoを使用してボタンの対応する#contを表示を切り替えています。

にほんブログ村 IT技術ブログへ にほんブログ村 IT技術ブログ WordPressへ にほんブログ村 IT技術ブログ Webサイト構築へ

投稿者: おーあえ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください