$('#list > li').addClass('horiz')
여기에 넣으면 이렇게 쓰면 무효가 됩니다.
왜냐하면 코드가 js 스크립트, 본문 내용 페이지가 아직 렌더링되지 않았으며 $('#list>li')는 요소를 전혀 얻을 수 없습니다
따라서 페이지 렌더링이 완료된 후에만 유효하며 DOM 트리는 다음과 같습니다. 생성된 후 실행됩니다
그러면 헤드에서 어떻게 실행될 수 있을까요? 두 가지 방법이 있습니다.
1. 창 개체의 onload 이벤트를 사용합니다. 페이지 요소가 로드된 후 이 js 스크립트를 호출합니다(지연된 호출). )
window.onload = function () { $('#list > li').addClass('horiz') }
그러면 jquery에 동일한 기능을 가진 메서드가 있습니까? 물론 사용할 수 있을 뿐만 아니라 더 효율적인 메서드도 있습니다: Ready()
$(document).ready(function () { $('#list > li').addClass('horiz') })
약어:
$(function(){ //jq代码 $('#list > li').addClass('horiz') })
물론 jquery 코드를 작성하면 html 문서의 맨 아래에 그렇게 번거롭지는 않지만 여전히 $(function() {}) 캡슐화를 사용하는 것이 좋습니다.
HTML 페이지 생성은 두 단계로 나뉩니다.
1. DOM 트리 생성: html 파일에 몇 개의 요소가 있는지, 그리고 요소 간의 관계를 브라우저에 알려줍니다.
2. 외부 리소스 로드: 이미지, 외부 파일 등
window.onload 이벤트는 DOM 트리에서 생성되어야 하며 모든 외부 리소스가 로드된 후에만 트리거될 수 있습니다.
$().ready() 이벤트: DOM이 생성되자마자 트리거될 수 있습니다. 모든 요소가 로드될 때까지 기다릴 필요가 없습니다. 특히 큰 사진이나 파일이 있는 경우 효과는 매우 분명합니다
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>jquery代码的执行方式</title> <style type="text/css"> .horiz { float:left; list-style: none; margin: 10px; } </style> <script type="text/javascript" src="../js/jquery-3.3.1.js"></script> <script type="text/javascript"> $(function(){ //jq代码 $('#list > li').addClass('horiz') }) </script> </head> <body> <h2>购物清单</h2> <ul id="list"> <li>生活用品 <ul> <li><a href="">淘宝</a></li> <li>箱包</li> <li>衣服</li> <li>鞋子</li> </ul> </li> <li>数码产品 <ul> <li><a href="">京东</a></li> <li>笔记本电脑</li> <li>显示器</li> </ul> </li> <li>食品保健 <ul> <li><a href="">拼多多</a></li> <li>奶粉</li> <a href="">玩具</a> </ul> </li> </ul> <!-- <script type="text/javascript" src="../js/jquery-3.3.1.js"></script> --> <script type="text/javascript"> // $('#list > li').addClass('horiz') // $(document).ready(function(){ // //这里放jQuery代码:将列表水平摆放 // $('#list > li').addClass('horiz') // }) </script> </body> </html>
위 내용은 Jquery 코드가 실행되는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!