Maison > Article > interface Web > JQuery simple et facile à comprendre : opérations jQuery
Vous pouvez créer un balisage HTML de manière dynamique en transmettant une chaîne HTML brute à une fonction jQuery.
<!DOCTYPE html> <html lang="en"> <body> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function($){ alert($('<div><a></a></div>').get(0).nodeName); // Alerts "DIV" alert($('<div><a></a></div>').length); // Alerts "1" <div> is in the wrapper set alert($('<div><a></a></div><div><a></a></div>').length); // Alerts "2" <div> are in the set })(jQuery); </script> </body> </html>
Il convient de noter que lors de l'utilisation des fonctions jQuery pour créer une structure DOM, seul l'élément racine de la structure sera ajouté à l'ensemble de wrapper. Dans l’exemple de code précédent, l’élément <div> serait le seul élément de l’ensemble wrapper.
<p>Une fois qu'un élément de la structure HTML est créé, nous pouvons le manipuler en utilisant la méthode <code>find()
.
<!DOCTYPE html> <html lang="en"> <body> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function ($) { $('<div><a></a></div>') .find('a') .text('jQuery') .attr('href', 'http://www.jquery.com'); })(jQuery); </script> </body> </html>
Après avoir manipulé le HTML nouvellement créé, vous pouvez également l'ajouter au DOM en utilisant l'une des méthodes de manipulation de jQuery. Ci-dessous, nous utilisons la méthode appendTo()
pour ajouter un balisage à la page.
<!DOCTYPE html> <html lang="en"> <body> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function($){ $('<div><a></a></div>') .find('a') .text('jQuery') .attr('href', 'http://www.jquery.com') .end().appendTo('body'); // end() is used to exit the find() method })(jQuery); </script> </body> </html>
Remarque : Un élément simple qui ne contient pas d'attributs - comme $('<div></div>')
- 通过 document.createElement
DOM 方法创建,而所有其他情况都依赖于 innerHTML
属性。事实上,您可以直接向 jQuery 函数传递使用 document.createElement
-e.g 创建的元素。 $(document.createElement('div'))
.
Les chaînes HTML transmises à jQuery ne peuvent pas être contenues dans <div> éléments qui peuvent être considérés comme invalides.
<p>La chaîne HTML transmise à la fonction jQuery doit être bien formée. </p>
<p>Lorsque vous passez du HTML jQuery, vous devez ouvrir et fermer tous les éléments HTML. Ne pas le faire peut entraîner des erreurs, principalement dans Internet Explorer. Pour être sûr, fermez toujours les éléments HTML et évitez d'écrire des raccourcis HTML - comme <code>$(<div></div>)
.
Vous pouvez déterminer l'index d'un élément dans un ensemble encapsulé en passant l'élément à la méthode index()
. Par exemple, disons que vous disposez d'un ensemble de wrappers qui contient tous les éléments index()
方法来确定包装集中元素的索引。例如,假设您有一个包含网页中所有 <div> 元素的包装集,并且您想知道最后一个 <code><div> d'une page Web et que vous souhaitez connaître l'index du dernier élément . <p>
<pre class="brush:html;toolbal:false;">
<!DOCTYPE html>
<html lang="en">
<body>
<div>0</div>
<div>1</div>
<div>2</div>
<div>3</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script> (function ($) {
// Alerts "3"
alert($('div').index($('div:last')));
})(jQuery); </script>
</body>
</html>
</pre>
L’utilisation de <code>index()
的使用并没有真正击中要害,直到我们考虑如何将它与事件一起使用。例如,通过点击下面代码中的 <div> 元素,我们可以将点击的 <code><div> 元素(使用关键字 <code>this
)传递给 index()
方法来确定点击的 <div>
<code>index()
ne nous convient pas vraiment tant que nous n’avons pas réfléchi à la manière de l’utiliser avec des événements. Par exemple, en cliquant sur l'élément dans le code ci-dessous, nous pouvons passer l'élément
this
) à la méthode index()
pour déterminer le cliqué <!DOCTYPE html> <html lang="en"> <body> <div id="nav"> <div>nav text</div> <div>nav text</div> <div>nav text</div> <div>nav text</div> </div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function ($) { // Alert index of the clicked div amongst all div's in the wrapper set $('#nav div').click(function () { alert($('#nav div').index(this)); // or, a nice trick... alert($(this).prevAll().length); }); })(jQuery); </script> </body> </html>
text()
Exploration de la méthode text()
<!DOCTYPE html> <html lang="en"> <body> <div>1,</div> <div>2,</div> <div>3,</div> <div>4</div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function ($) { alert($('div').text()); // Alerts "1,2,3,4" })(jQuery); </script> </body> </html>
replace()
Mettre à jour ou supprimer des caractères à l'aide d'expressions régulières
En utilisant les méthodes JavaScript html()
combinées à certaines fonctionnalités de jQuery, nous pouvons très facilement mettre à jour ou supprimer tout modèle de caractère dans le texte contenu dans l'élément.
<!DOCTYPE html> <html lang="en"> <body> <p> I really hate using JavaScript. I mean really hate it! It is the best twister ever! </p> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function ($) { var $p = $('p'); // Replace 'hate' with 'love' $p.text($p.text().replace(/hate/ig, 'love')); // Remove 'twister' and replace it with nothing $p.text($p.text().replace(/twister/ig, '')); // Keep in mind that text() returns a string, not the jQuery object. // That is how the replace() string method is chained after using text() })(jQuery); </script> </body> </html>
.contents()
方法可用于查找所有子元素节点,包括元素内部包含的文本节点。然而,有一个问题。如果检索到的内容仅包含文本节点,则所选内容将作为单个文本节点放置在包装器集中。但是,如果您要检索的内容在文本节点中包含一个或多个元素节点,则 .contents()
Exploration de la méthode .contents()
.get(0).nodeValue
提取值。 contents()
方法对于提取文本节点值很方便。可以使用 contents()
contiendra des nœuds de texte et des nœuds d'éléments. Vérifiez le code ci-dessous pour comprendre ce concept.
<!DOCTYPE html> <html lang="en"> <body> <p>I love using jQuery!</p> <p>I love <strong>really</strong> using jQuery!</p> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function ($) { // Alerts "I love using jQuery!" because no HTML elements exist alert($('p:first').contents().get(0).nodeValue); // Alerts "I love" alert($('p:last').contents().get(0).nodeValue); // Alerts "really" but is an HTML element, not a text node alert($('p:last').contents().eq(1).text()); // Alerts "using jQuery!" alert($('p:last').contents().get(2).nodeValue); })(jQuery); </script> </body> </html>
<!DOCTYPE html> <html lang="en"> <body> <p>jQuery gives me <strong>more <span>power</span></strong> than any other web tool! </p> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function($){ $('p') .find('*') // Select all nodes .andSelf() // Include <p> .contents() // Grab all child nodes, including text .filter(function() {return this.nodeType == Node.TEXT_NODE;}) // Remove non-text nodes .each(function (i, text) { alert(text.nodeValue) }); // Alert text contained in wrapper set })(jQuery); </script> </body> </html>
remove()
L'utilisation de Remove() ne supprimera pas les éléments de l'ensemble encapsulé
Lorsque vous utilisez remove()
, les éléments contenus dans la structure DOM dont le fragment DOM a été supprimé sont toujours inclus dans l'ensemble de wrapper. Vous pouvez supprimer un élément, effectuer des opérations sur cet élément, puis remettre l'élément dans le DOM, le tout au sein d'une seule chaîne jQuery.
<!DOCTYPE html> <html lang="en"> <body> <div>remove me</div> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script> (function ($) { $('div') .remove().html('<a href="http://www.jQuery.com">jQuery</a>') .appendTo('body'); })(jQuery); </script> </body> </html>🎜Le point ici est que ce n'est pas parce que vous 🎜éléments ont été supprimés de l'ensemble de wrapper jQuery. 🎜
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!