SQLの窓

2014年07月04日


jQuery で全て動的に PRE(親)要素の中にアンカー(リンク)を作成して行く処理 : $("<a></a>")








要素(エレメント)を動的に作成するのは、DOM では document.createElement です。もちろんそれでも使えますが、jQuery では至極簡単に $("要素の記述") で作成されます。作成されただけでは画面に所属しないので( 表示されない )、.appendTo( 既に存在する要素 ) として親要素の1番目の要素として登録します。

その後は、必要な属性・値・CSS・イベント・前後の補正を追加して完成させます。
	// ************************************
	// a 要素を作成して、
	// anchorContent の子要素として追加する
	// ************************************
	$("<a></a>").appendTo( $("#anchorContent") )

		// ************************************
		// 属性として id と href と target の値をセット
		// ************************************
		.attr({
			"id": "anchorContent1",
			"href": "https://www.google.co.jp/",
			"target": "_blank"
		})

		// ************************************
		// テキストノードとしての値をセット
		// ************************************
		.text("Google")

		// ************************************
		// 表示関連の属性をセット
		// ************************************
		.css({
			"font-size": "20px",
			"font-weight": "bold",
			"text-decoration": "none",
			"color": "navy"
		})

		// ************************************
		// イベントをセット
		// ************************************
		.click(function(){
			console.log("アンカーがクリックされました");
		});


二つ目以降は、最初のアンカーに対して、.insertAfter する事によって繋いで行きます。ここでは、親要素が PRE なので、二つ目以降は改行する為に最後に .before("\n\n") を追加しています。
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/themes/base/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.1/jquery-ui.min.js"></script>
<script type="text/javascript">

$(function(){

	// 通常リンク
	$("<a></a>").appendTo( $("#anchorContent") )
		.attr({
			"id": "anchorContent1",
			"href": "https://www.google.co.jp/",
			"target": "_blank"
		})
		.text("Google")
		.css({
			"font-size": "20px",
			"font-weight": "bold",
			"text-decoration": "none",
			"color": "navy"
		})
		.click(function(){
			console.log("アンカーがクリックされました");
		});
	

	// ボタンがわり
	$("<a></a>").insertAfter($("#anchorContent1"))
		.attr({
			"id": "anchorContent2",
			"href": "#"
		})
		.text("ボタンのかわり")
		.css({
			"font-size": "20px",
			"font-weight": "bold"
		})
		.click(function( event ){
			console.log("アンカーがクリックされました1");

			window.open("https://translate.google.co.jp/?hl=ja&tab=iT");

			// クリックする事によって起こる # の機能をキャンセル
			event.preventDefault();
		})
		.before("\n\n");

	// jQuery UI でアンカーをボタン化
	$("<a></a>").insertAfter($("#anchorContent2"))
		.attr({
			"id": "anchorContent3"
		})
		.button()
		.text("jQuery UI でアンカーをボタン化")
		.css({
			"font-size": "20px",
			"font-weight": "bold",
			"padding": "10px"
		})
		.click(function( event ){
			console.log("アンカーがクリックされました2");

			window.open("https://www.google.co.jp/maps/preview?hl=ja");

			// クリックする事によって起こるかもしれない処理をキャンセル
			event.preventDefault();
		})
		.before("\n\n");

});

</script>

<pre id="anchorContent"></pre>



タグ:jquery
posted by lightbox at 2014-07-04 14:54 | メソッド:jQuery | このブログの読者になる | 更新情報をチェックする
container 終わり



フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

CSS ドロップシャドウの参考デモ
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり