jquery source
$('#xxx').css({ 'color':'red', 'font-size':'1.1em', 'width':'100%', 'height':'100%', });
除去する場合は「''」をセットする
$('#xxx').css({ 'color':'', 'font-size':'', 'width':'', 'height':'', });
一つだけ指定する場合
$('#xxx').css('color':'blue');
width,height
CSSのwidth,heightと同じ値を取得するvar w = $('#xxx').width(); var h = $('#xxx').height();
outerWidth,outerHeight
width,heightのそれぞれにpaddingとborderを加算した幅を取得する。var w = $('#xxx').outerWidth(); var h = $('#xxx').outerHeight();サンプル
//絶対位置を取得(HTMLドキュメントの右端からの位置) var offset=$('#test1').offset(); var o_top=offset.top; var o_left=offset.left; //親要素からの相対位置を取得。(親要素にrelative等が指定されていない場合は絶対位置) var pos=$('#test1').position(); var p_top=pos.top; var p_left=pos.left;サンプル
位置をセットする場合
var left = 150; var top = 250; $('#test1').offset({'top':top,'left':left }); // position:relative(もしくはabsolute,fixed)である場合、CSSへもセットすると良い。 $('#test1').css({ 'left':left + 'px', 'top':top + 'px' });
$(セレクタ).hover(オーバーイベント,アウトイベント);マウスオーバーイベントはオーバーイベントとアウトイベントの2つから構成される。
html source
<div id="test1" style="width:50px;height:50px;background-color:#dff0cb"></div> <div id="res1"></div>
javascript source
$('#test1').hover( function(){ console.log('over'); $('#res1').html('over'); }, function(){ console.log('out'); $('#res1').html('out'); } );サンプル
keypressについて
shift+「Caps Lock」で小文字入力、大文字入力を切り替えたとき、キーコードの値も変化する。イベント | 説明 |
---|---|
keydown | キーを押しこんだ時のイベント |
keyup | キーを話した時のイベント |
keypress |
キー押下イベント。 keydownとkeyupを併せ持つ。 shiftキーの概念が存在する。 小文字入力モードのときキーコードはkeydown、keyupと異なるが、 大文字入力モードやshiftキー同時押しで同じキーコードになる。 |
ソースコード
~略~ <script src="jquery.js"></script> <script> $(function(){ // キーを離したときのイベント $('#test1').keyup(function(e){ var str = 'keyup:' + e.keyCode + '<br>'; $('#res').append(str); }); // キーを押しこんだときのイベント $('#test1').keydown(function(e){ var str = 'keydown:' + e.keyCode + '<br>'; $('#res').append(str); }); // キーを押下イベント(keydownとkeyupを組み合わせたイベント) $('#test1').keypress(function(e){ var str = 'keypress:' + e.keyCode + '<br>'; $('#res').append(str); }); }); </script> ~略~ <textarea id="test1"></textarea> <div id="res" > ~略~
出力(小文字入力モードで「A」キーを押した時)
$(window).keypress(function(e){ console.log(e.keyCode); });
html
<input id="test1" type="text" value="ネコがネズミを食べる" />
javascript/jquery
$(function(){ $("#test1").focus(function() { $(this).select(); }); });サンプル
<div id="animal"> <div id="cat"> <span id="kuro-neko">黒猫</span> <aside id="siam-cat">シャム猫</aside> </div> <div class="dog">犬</div> </div>
var elm1 = $('#animal'); var siam_cat = elm1.find('#siam-cat').html(); console.log(siam_cat);出力
シャム猫
childrenメソッド
childrenメソッドは直下の子要素のみ取得可能。var elm2 = $('#animal'); var dog = elm1.children('.dog');// 直下の子要素のみ取得可能 console.log(dog);出力
犬
var firstRow = parElm.children().eq(0);
<input id="hoge" type="text" />
var tagName = $('#hoge').get(0).tagName;
var tagName = $('#hoge').prop("tagName");
var url = "sample1.html";
$.ajax({
type: "GET",
url: url,
cache: false,
dataType: "text",
success: function(text, type) {
var obj = $.parseHTML(text);
var res = $(obj).find('#test2').html();
console.log(res);
},
error: function(xmlHttpRequest, textStatus, errorThrown){
alert(textStatus);
}
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="/note_prg/js/jquery-1.11.1.min.js"></script>
<script>
$(function(){
alert('セキュリティエラー:外部HTMLのスクリプトが実行された');
});
</script>
</head>
<body>
<div>
<div id='test1'>Hello World! 壱</div><div id="test2">Hello World! 弐</div></div>
</body>
</html>
Hello World! 弐
$.parseHTML();
「$.parseHTML(text);」でパースすると外部HTML内に埋め込まれているJavaScriptを実行しません。var text = "<div><div id='test1'>Hello World! 壱</div><div id='test2'>Hello World! 弐</div></div>"; var obj = $.parseHTML(text); var res = $(obj).find('#test2').html(); console.log(res);
Hello World! 弐
$('body').append(obj);
取得できないケース
「div」などタグでラップされていないとfindで取得することはできない。
var text = "<div id='test1'>Hello World! 壱</div><div id='test2'>Hello World! 弐</div>";
var obj = $.parseHTML(text);
var res = $(obj).find('#test2').html();// ← 空となり取得できず
var text = "<body><div id='test1'>Hello World! 壱</div><div id='test2'>Hello World! 弐</div></body>";
var obj = $.parseHTML(text);
var res = $(obj).find('#test2').html();// ← 空となり取得できず
$.parseHTMLの利点
「$.parseHTML(text);」でパースすると外部HTML内に埋め込まれているJavaScriptを実行しません。