Jquery学習ノート(四)

3084 ワード

非class属性については、Jqueryが提供する.attr()と.removeAttr()メソッド.それらをそれぞれ対応するものの代わりに用いることもできる.class()の方法--もし私たちが自分に迷惑をかけたいなら.
Jqueryのeach()法は反復器に似ており,実際にはforサイクルのより簡潔な形式である.セレクタが一致する要素セットに複雑なコードを適用し、暗黙的な反復構文では適切でない場合、each()メソッドを使用します.
$(document).ready(function(){
	$( 'div.chapter a' ).each(function(index){
	    var $thisLink = $(this);
	    $(this).attr({
		    'rel': 'external',
			'id': 'wikilink-' + index
			'title': 'learn more about' + $thisLink.text() + ' at Wikipedia'
		});
	});
});

 
 
要素の挿入
Jqueryは2つの要素を他の要素の前に挿入する方法を提供する:InsertBefore()と.before(),.义齿after()
彼らの違いは、それらを他の方法とどのように接尾辞するかです.
$(document).ready(function(){
	$('<a href="#top">back to top</a>').insertAfter('div.chapter p');
	$('<a id="top"></a>').prependTo('body');
});

 
通過するafter()もできますが、選択子式を後ろではなく、この方法の前に置かなければなりません.
$('div.chapter p').after(' <a href="#top">back to top</a> ')

 
.append(*)は、要素の追加操作を実行するためのものである.appendTo('*')は、**の後ろに要素を順次挿入するために使用されます.
 
 
ほうそうげんそ
JQueryにおいて他の元素に元素を包装する方法は、適切に命名する.wrap()
.wrap('<li id="foot-note-' + (index+1) + '"></li>');

 
要素をコピーします.clone()  .clone(false)は段落要素のみをコピーします.また、覚えておいてください.clone()はイベントをコピーしません.しかし、著者らはBrandon Aaronのプラグインを使用することができる方法について言及した.cloneWithEvents().
 
 
こまごましたもの
&hellip省略記号
使用しています.find()の後に使用する必要がある.end()で終わります
複数回使用する必要があるJQueryオブジェクトを変数に保存することで、$()ファクトリへのアクセスを低減し、DOMの遍歴効率を向上させることができます.
.html()  .text()は似ていますが、textはHTMLを符号化し、対応するHTMLエンティティに「<」または「>」を置き換えます.
.empty()  .remove()前者はサブノードのみを削除し、後者は一致する要素をJQueryオブジェクトから削除しないため、将来これらの一致する要素を再利用することができる
 
ここに何か追加しなければなりません.remove()の公式説明は少し理解できず、それを調べて、今は少し理解しなければなりません.
 
JQueryのremoveメソッドの公式説明は次のとおりです.
DOMから一致するすべての要素を削除します.
この方法では、一致する要素をjQueryオブジェクトから削除することはありません.したがって、将来、これらの一致する要素を使用することができます.
すると、問題が発生し、要素がDOMオブジェクトから削除されると、JQueryオブジェクトにはコピーが存在するはずです.
これにより、削除するオブジェクトを再確立する際に、DOMにおいてJQuery.appendが新しいエレメントを追加し、新しいindexに付与すると、JQueryセレクタが選択したエレメントセットlengthがDOMオブジェクト配列よりも大きくなり、マッチングに問題が発生します.(問題ははっきり言ってないみたいだけど、ふふ~~)
問題は、2つの日付の差を作っていることで、この日付差の日数Nに基づいて、ページにN行DIVを生成し、日数を変更し、DIVを追加または削除し、日付差と行数の一致を維持していることです.試みに失敗する.ついに実現の方法を見つけました.
1、要素を削除する親要素でnot(expr)メソッドを使用してJQueryオブジェクトから要素を削除します.
2、その後DOMから削除された要素.
3、複数の要素を削除するには、要素の下に大きい要素から順に削除します.
注:1、2ステップ目は前後の順序を変更できません.
 
var alreadyDayNum=$("#a>.b").length;
var daydisc=dayDisc(date1,date2); /*        */
for (var i=alreadyDayNum-1;i>=daydisc;i--){
  $($("#a>.b")[i]).parent().not($("#a>.b")[i]);
  $($("#a>.b")[i]).remove();
}