Maison  >  Article  >  interface Web  >  Quelles sont les méthodes de parcours dans jquery ?

Quelles sont les méthodes de parcours dans jquery ?

青灯夜游
青灯夜游original
2023-03-15 13:59:452068parcourir

Les méthodes de traversée sont : 1. add(), utilisée pour ajouter des éléments à l'ensemble des éléments correspondants ; 2. children(), utilisée pour renvoyer tous les éléments enfants directs de l'élément sélectionné 3. close(), utilisée Returns ; le premier élément ancêtre de l'élément sélectionné ; 4. contents(), utilisé pour renvoyer tous les éléments enfants directs de l'élément sélectionné ; 5. each(), utilisé pour exécuter la fonction pour chaque élément correspondant ; . find(); 9. first(); 10. is(); 11. last() et ainsi de suite.

Quelles sont les méthodes de parcours dans jquery ?

L'environnement d'exploitation de ce tutoriel : système windows7, version jquery3.6, ordinateur Dell G3.

Résumé de la méthode de traversée jQuery

La fonction de traversée jQuery comprend des méthodes de filtrage, de recherche et de concaténation d'éléments.

Méthode Description
add() Ajouter des éléments à l'ensemble des éléments correspondants
addBack() Ajouter l'ensemble d'éléments précédent à l'ensemble actuel
etSoi () est obsolète dans la version 1.8. addBack() Alias ​​​​
children() Renvoie tous les éléments enfants directs de l'élément sélectionné
closest() Renvoie le premier élément ancêtre de l'élément sélectionné
contents() Renvoyer tous les éléments enfants directs de l'élément sélectionné (y compris les nœuds de texte et de commentaires)
each() Exécuter la fonction pour chaque élément correspondant
end() Terminer le plus récent dans le chaîne actuelle Opération de filtrage et renvoyer l'ensemble des éléments correspondants à l'état précédent
eq() Renvoyer l'élément avec le numéro d'index spécifié de l'élément sélectionné
filter() Réduire l'ensemble des correspondances elements to Un nouvel élément correspondant à la valeur de retour du sélecteur ou de la fonction correspondante
find() Renvoie l'élément descendant de l'élément sélectionné
first() Renvoie le premier élément de l'élément sélectionné
has () Renvoie tous les éléments qui contiennent un ou plusieurs éléments
is() Vérifie l'ensemble des éléments correspondants en fonction de l'objet sélecteur/élément/jQuery et renvoie true s'il y en a au au moins un élément correspondant
last() Renvoie le dernier élément de l'élément sélectionné
map() Passe chaque élément de l'ensemble correspondant actuel à la fonction et génère un nouvel objet jQuery contenant le retour value
next() Renvoie l'élément frère suivant de l'élément sélectionné
nextAll() Renvoie tous les éléments frères après l'élément sélectionné
nextUntil() Renvoie la valeur entre deux éléments donnés Tous les éléments frères après chaque élément entre les paramètres
not() Supprime l'élément de l'ensemble des éléments correspondants
offsetParent() Renvoie le premier élément parent positionné
parent( ) Renvoie l'élément parent direct de l'élément sélectionné
parents() Renvoie tous les éléments ancêtres de l'élément sélectionné
parentsUntil() Renvoie la valeur entre les deux paramètres donnés Tous les éléments ancêtres de
prev() Renvoie l'élément frère précédent de l'élément sélectionné
prevAll() Renvoie tous les éléments frères avant l'élément sélectionné
prevUntil() Renvoie tous les éléments frères avant chacun élément entre les deux paramètres donnés
siblings() Renvoie tous les éléments frères et sœurs de l'élément sélectionné
slice() Correspondance L'ensemble d'éléments est réduit à un sous-ensemble de la plage spécifiée

Deux méthodes pour parcourir les éléments enfants

  • Méthode children() : Obtenez les éléments de sous-ensemble directs sous cet élément

  • Méthode find() : Obtenez tous (y compris les sous-ensembles de sous-ensembles) sous cet élément) les éléments de sous-ensemble

Différence : la méthode

children() renvoie tous les éléments enfants directs de l'élément sélectionné (éléments enfants directs, recherche uniquement les fils et non les petits-enfants (: c'est-à-dire pas de parcours récursif)

La méthode find() La méthode obtient les descendants de chaque élément de la collection d'éléments actuelle (notez que pour la méthode find(), les paramètres doivent être passés, sinon ils seront invalides)

Exemple : interrogez tous les éléments enfants

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<script src="js/jquery-1.10.2.min.js"></script>
		<style>
			div * {
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>

		<script>
			$(document).ready(function() {
				$("button").on("click", function() {
					$("ul").find("*").css({
						"color": "red",
						"border": "2px solid red"
					});
				});
			});
		</script>
	</head>

	<body class="ancestors">
		<div style="width:500px;">div (父节点)
			<ul>ul (指定元素)
				<li>li (子节点1)
					<span>span (孙节点1)</span>
				</li>
				<li>li (子节点2)
					<span>span (孙节点2)</span>
				</li>
				<li>li (子节点3)
					<span>span (孙节点3)</span>
				</li>
			</ul>
		</div>
		<button>选取ul的所有子元素</button>
	</body>

</html>

Quelles sont les méthodes de parcours dans jquery ?

7 façons pour parcourir les éléments frères et sœurs Méthode :

  • siblings() méthode, principalement utilisée pour obtenir tous les éléments du même niveau de l'élément spécifié

  • next() méthode, principalement utilisée pour obtenir l'élément frère suivant de l'élément spécifié element

  • nextAll (), principalement utilisée pour obtenir tous les éléments du prochain frère de l'élément spécifié.

  • nextUntil(), principalement utilisée pour obtenir l'élément frère suivant de cet élément frère spécifié. doit être identique à nextUntil de l'élément spécifié. Les éléments entre les éléments définis par la méthode ()

  • prev(), principalement utilisée pour obtenir les éléments frères de niveau supérieur de l'élément spécifié

  • prevAll( ), principalement utilisée pour obtenir le niveau supérieur de l'élément spécifié. Tous les éléments frères et sœurs

  • prevUntil() sont principalement utilisés pour obtenir l'élément frère précédent de l'élément spécifié. Cet élément frère doit être l'élément situé entre l'élément spécifié. et l'élément défini par la méthode prevUntil () Méthode il()

    <!DOCTYPE html>
    <html>
    	<head>
    		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    	</head>
    
    	<body>
    		<div><span>Hello</span></div>
    		<p class="selected">Hello Again</p>
    		<p>And Again</p>
    
    		<script>
    			$("p").siblings(".selected").css("background", "yellow");
    		</script>
    
    	</body>
    </html>

méthode prev()

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
	</head>

	<body>
		<ul>
			<li>list item 1</li>
			<li>list item 2</li>
			<li class="third-item">list item 3</li>
			<li>list item 4</li>
			<li>list item 5</li>
		</ul>

		<script>
			$(&#39;li.third-item&#39;).next().css(&#39;background-color&#39;, &#39;red&#39;);
		</script>

	</body>
</html>
Quelles sont les méthodes de parcours dans jquery ?

méthode prevAll()

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
	</head>

	<body>

		<ul>
			<li>list item 1</li>
			<li>list item 2</li>
			<li class="third-item">list item 3</li>
			<li>list item 4</li>
			<li>list item 5</li>
		</ul>

		<script>
			$(&#39;li.third-item&#39;).nextAll().css(&#39;background-color&#39;, &#39;red&#39;);
		</script>

	</body>
</html>
Quelles sont les méthodes de parcours dans jquery ?

méthode prevUntil()

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
		<style>
			.siblings * {
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>
		<script>
			$(document).ready(function() {
				$("li.start").nextUntil("li.stop").css({
					"color": "red",
					"border": "2px solid red"
				});
			});
		</script>
	</head>
	<body>

		<div style="width:500px;" class="siblings">
			<ul>ul (父节点)
				<li>li (兄弟节点)</li>
				<li>li (兄弟节点)</li>
				<li class="start">li (类名为"start"的兄弟节点)</li>
				<li>li (类名为"start"的li节点的下一个兄弟节点)</li>
				<li>li (类名为"start"的li节点的下一个兄弟节点)</li>
				<li>li (类名为"start"的li节点的下一个兄弟节点)</li>
				<li class="stop">li (类名为"stop"的兄弟节点)</li>
			</ul>
		</div>
		<p>在这个例子中,我们返回在类名为“star”和类名为“stop”的 li元素之间的所有下一个兄弟元素。</p>

	</body>
</html>
Quelles sont les méthodes de parcours dans jquery ?

les méthodes each() et map() peuvent parcourir le tableau Quelles sont les méthodes de parcours dans jquery ?

each() traverse le tableau

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
		<style>
			.siblings * {
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>
		<script>
			$(document).ready(function() {
				$("li.start").prev().css({
					"color": "red",
					"border": "2px solid red"
				});
			});
		</script>
	</head>
	<body>

		<div style="width:500px;" class="siblings">
			<ul>ul (父节点)
				<li>li (兄弟节点)</li>
				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
				<li class="start">li (类名为"start"的li节点)</li>
				<li>li (兄弟节点)</li>
				<li>li (兄弟节点)</li>
			</ul>
		</div>

	</body>
</html>

Quelles sont les méthodes de parcours dans jquery ?

map() Traverse le tableau

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
		<style>
			.siblings * {
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>
		<script>
			$(document).ready(function() {
				$("li.start").prevAll().css({
					"color": "red",
					"border": "2px solid red"
				});
			});
		</script>
	</head>
	<body>

		<div style="width:500px;" class="siblings">
			<ul>ul (parent)
				<li>li (类名为"start"的li的上一个兄弟节点)</li>
				<li>li (类名为"start"的li的上一个兄弟节点)</li>
				<li>li (类名为"start"的li的上一个兄弟节点)</li>
				<li class="start">li (类名为"start"的li节点)</li>
				<li>li (兄弟节点)</li>
				<li>li (兄弟节点)</li>
			</ul>
		</div>
		<p>在这个例子中,我们返回类名称为“star”的li元素之前的所有兄弟元素。</p>

	</body>
</html>

Quelles sont les méthodes de parcours dans jquery ?

Connaissances approfondies : utilisation de eachQuelles sont les méthodes de parcours dans jquery ?

1. chacun dans le tableau

<!DOCTYPE html>
<html>
	<head>
		<script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
		<style>
			.siblings * {
				display: block;
				border: 2px solid lightgrey;
				color: lightgrey;
				padding: 5px;
				margin: 15px;
			}
		</style>
		<script>
			$(document).ready(function() {
				$("li.start").prevUntil("li.stop").css({
					"color": "red",
					"border": "2px solid red"
				});
			});
		</script>
	</head>
	<body>

		<div style="width:500px;" class="siblings">
			<ul>ul (父节点)
				<li class="stop">li (类名为"stop"的兄弟节点)</li>
				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
				<li>li (类名为"start"的li节点的上一个兄弟节点)</li>
				<li class="start">li (类名为"start"的li节点)</li>
				<li>li (兄弟节点)</li>
				<li>li (兄弟节点)</li>
			</ul>
		</div>
		<p>在这个例子中,我们返回在类名为“star”和“stop”的li元素之间的所有上一个兄弟元素,。</p>

	</body>
</html>
Quelles sont les méthodes de parcours dans jquery ?

2. Traversez l'élément Dom

Quelles sont les méthodes de parcours dans jquery ?

<script>
	var arr = [1,3,5,7,9];
	var obj = {0:1,1:3,2:5,3:7,4:9};

	/**
	* 利用jQuery的each静态方法遍历
	* 第一个参数:当前遍历到的索引
	* 第二个元素:遍历到的元素
	* 注意:jQuery的each方法可以遍历伪数组
	*/
	$.each(arr,function(index,value){
		console.log("jQuery-each方法遍历数组:",index,value);
	})
	$.each(obj,function(index,value){
		console.log("jQuery-each方法遍历伪数组:",index,value);
	})
</script>
Le café apparaît l'un après l'autre, le lait, le soda

3. Comparaison entre chacun et la carte

L'exemple suivant consiste à obtenir la valeur d'identification de chaque multi. -box;

each méthode : Définissez un tableau vide via chaque méthode, ajoutez la valeur ID au tableau ; enfin, après avoir converti le tableau en chaîne, alertez la valeur

<script>
	var arr = [1,3,5,7,9];
	var obj = {0:1,1:3,2:5,3:7,4:9};
	/**
	*1.利用原生JS的map方法遍历 
	*第一个参数:遍历到的元素
	*第二个参数:当前遍历到的索引
	*第三个参数:当前被遍历的数组
	*注意:和原生的forEach方法一样,不能遍历伪数组
	*/
	arr.map(function(value,index,array){
		console.log("原生map遍历数组:",index,value,array);
	});
	/**
	obj.map(function(value,index,array){
		console.log("原生map遍历伪数组:",index,value,array);
		//Uncaught TypeError: obj.forEach is not a function
	});
	*/

	/**
	* 2.利用jQuery的each静态方法遍历
	* 第一个参数:要遍历的数组
	* 每遍历一个元素之后执行的回调函数
	* 回调函数的参数:
	* 	第一个参数:遍历到的元素
	* 	第二个元素:当前遍历到的索引
	* 注意:和jQuery的each方法一样可以遍历伪数组
	*/
	$.map(arr,function(value,index){
		console.log("jQuery-map方法遍历数组:",index,value);
	})
	$.map(obj,function(value,index){
		console.log("jQuery-map方法遍历伪数组:",index,value);
	})
</script>

map ; méthode : Exécutez la case à cocher each: pour renvoyer this.id ; et renvoyez ces valeurs de retour, enregistrez-le automatiquement en tant qu'objet jQuery, puis utilisez la méthode get pour le convertir en un tableau Javascript natif, puis utilisez la méthode join pour convertissez-le en chaîne et enfin alertez la valeur

复制代码

 var arr = [ "one", "two", "three", "four"];     
 $.each(arr, function(){     
    alert(this);     
 });   
//上面这个each输出的结果分别为:one,two,three,four    
    
var arr1 = [[1, 4, 3], [4, 6, 6], [7, 20, 9]]     
$.each(arr1, function(i, item){     
   alert(item[0]);     
});     
//其实arr1为一个二维数组,item相当于取每一个一维数组,   
//item[0]相对于取每一个一维数组里的第一个值   
//所以上面这个each输出分别为:1   4   7     
  
  
var obj = { one:1, two:2, three:3, four:4};     
$.each(obj, function(i) {     
    alert(obj[i]);           
});   
//这个each就有更厉害了,能循环每一个属性     
//输出结果为:1   2  3  4
Lorsque vous avez besoin d'une valeur de tableau, utilisez map La méthode est très pratique.

4. Utilisez each

dans jquery pour parcourir le tableau, en utilisant à la fois l'index et le contenu des éléments. (i est l'index, n est le contenu)

Le code est le suivant :

<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $("button").click(function(){
    $("li").each(function(){
      alert($(this).text())
    });
  });
});
</script>
</head>
<body>
<button>输出每个列表项的值</button>
<ul>
<li>Coffee</li>
<li>Milk</li>
<li>Soda</li>
</ul>
</body>
</html>

Exemple l'objet, en utilisant à la fois les noms de membres et le contenu des variables. (i est le nom du membre, n est le contenu de la variable)

Le code est le suivant :

$(function(){
    var arr = [];
    $(":checkbox").each(function(index){
        arr.push(this.id);
    });
    var str = arr.join(",");
    alert(str);
})

Exemple de traversée d'éléments dom, ici un élément de formulaire de saisie est utilisé comme exemple.

Si vous avez un morceau de code comme celui-ci dans votre dom

$(function(){
    var str = $(":checkbox").map(function() {
        return this.id;
    }).get().join();    
    alert(str);
})

Ensuite, vous utilisez chacun comme suit Le code est le suivant :

$.each( [0,1,2], function(i, n){
alert( "Item #" + i + ": " + n );
});

5. Trouvez des éléments dans chacun selon cela

.

实现效果”回复”两个字只有在鼠标经过的时候才显示出来

<ol class="commentlist">
    <li class="comment">
        <div class="comment-body">
          <p>嗨,第一层评论</p>
          <div class="reply">
            <a href="#" class=".comment-reply-link">回复</a>
          </div>
        </div>
        <ul class="children">
          <li class="comment">
            <div class="comment-body">
            <p>第二层评论</p>
            <div class="reply">
              <a href="#" class=".comment-reply-link">回复</a>
            </div>
          </div></li>
        </ul>
    </li>
</ol>

js代码如下

$("div.reply").hover(function(){
  $(this).find(".comment-reply-link").show();
},function(){
  $(this).find(".comment-reply-link").hide();
});

实现效果,验证判断题是否都有选择

html

<ul id="ulSingle">
    
            <li class="liStyle">
                1.  阿斯顿按时<label id="selectTips" style="display: none" class="fillTims">请选择</label>
                <!--begin选项-->
                <ul>
                    
                            <li class="liStyle2">
                                <span id="repSingle_repSingleChoices_0_labOption_0">A         </span>.阿萨德发<input type="hidden" name="repSingle$ctl00$repSingleChoices$ctl00$hidID" id="repSingle_repSingleChoices_0_hidID_0" value="1" />
                                <input id="repSingle_repSingleChoices_0_cheSingleChoice_0" type="checkbox" name="repSingle$ctl00$repSingleChoices$ctl00$cheSingleChoice" /></li>
                        
                            <li class="liStyle2">
                                <span id="repSingle_repSingleChoices_0_labOption_1">B         </span>.阿萨德发<input type="hidden" name="repSingle$ctl00$repSingleChoices$ctl01$hidID" id="repSingle_repSingleChoices_0_hidID_1" value="2" />
                                <input id="repSingle_repSingleChoices_0_cheSingleChoice_1" type="checkbox" name="repSingle$ctl00$repSingleChoices$ctl01$cheSingleChoice" /></li>
                        
                            <li class="liStyle2">
                                <span id="repSingle_repSingleChoices_0_labOption_2">C         </span>.阿斯顿<input type="hidden" name="repSingle$ctl00$repSingleChoices$ctl02$hidID" id="repSingle_repSingleChoices_0_hidID_2" value="3" />
                                <input id="repSingle_repSingleChoices_0_cheSingleChoice_2" type="checkbox" name="repSingle$ctl00$repSingleChoices$ctl02$cheSingleChoice" /></li>
                        
                </ul>
                <!--end选项-->
                <br />
            </li>
        
</ul>

js代码

//验证单选题是否选中
        $("ul#ulSingle>li.liStyle").each(function (index) {
            //选项个数
            var count = $(this).find("ul>li>:checkbox").length;
            var selectedCount = 0
            for (var i = 0; i < count; i++) {
                if ($(this).find("ul>li>:checkbox:eq(" + i + ")").attr("checked")) {
                    selectedCount++;
                    break;
                }
            }
            if (selectedCount == 0) {
                $(this).find("label#selectTips").show();
                return false;
            }
            else {
                $(this).find("label#selectTips").hide();
            }
        })

 ps:传说中attr("property", "value");在部分浏览器中不管用可以用prop,如果只是判断可以用$(this).find("ul>li>:checkbox:eq(" + i + ")").is(":checked");

6.官方解释
以下是官方的解释:

jQuery.each(object, [callback])

概述 

通用例遍方法,可用于例遍对象和数组。

不同于例遍 jQuery 对象的 $().each() 方法,此方法可用于例遍任何对象。回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。 

参数 

  • objectObject :需要例遍的对象或数组。 

  • callback (可选)Function :每个成员/元素执行的回调函数。

【推荐学习:jQuery视频教程web前端视频

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn