페이지에있는 태그를 모두 선택하려고합니다. how John Resig does it과 비슷한 HTML 템플릿을 저장하려면 <script>
태그를 사용합니다. 몇 가지 이유를 들어, 다음 JQuery와 선택은 무엇을 선택하지 않는 것 :스크립트 태그에 jquery selector 문제가 발생했습니다.
$("script[type*=html]").each(function() {
alert("Found script "+this.id);
});
이 태그는 HTML 문서의 BODY에 있습니다
<body>
<script id="filter-search" type="text/html">
<dt>Search</dt>
<dd><input type="text"/></dd>
</script>
</body>
나는 또한으로 퍼팅 시도했다 HTML 문서의 HEAD는 여전히 발견되지 않습니다. 경고가 표시되지 않습니다.
내가 대신에 코드를 변경하는 경우 :
$("script[type*=javascript]").each(function() {
alert("Found script "+this.id);
});
는 그 다음 외부 파일에 src
이있는 HEAD 만 스크립트를 찾습니다. 실제 페이지의 스크립트를 찾을 수 없습니다. 예를 들어, HEAD에 다음과 :
<head>
<script type="text/javascript" src="jquery.js" id="jquery"></script>
<script type="text/javascript" src="jquery-ui.js" id="ui"></script>
<script type="text/javascript" id="custom">
$(document).ready(function() {
$("script[type*=javascript]").each(function() {
alert("Found script "+this.id);
});
$("script[type*=html]").each(function() {
alert("Found TEMPLATE script "+this.id);
});
});
</script>
<script id="filter-test" type="text/html">
<dt>Test</dt>
</script>
</head>
<body>
<script id="filter-search" type="text/html">
<dt>Search</dt>
<dd><input type="text"/></dd>
</script>
</body>
나는 다음과 같은 경고를 얻을 :
이- 찾을 스크립트 JQuery와
- 찾을 스크립트에서
custom
및 filter-test
스크립트 UI를 HEAD가 선택되지 않았으며 body
태그에 filter-search
스크립트가 없습니다.
이것은 예상되는 동작입니까? 왜 이것이 작동하지 않습니까? 나는 그 문제를 해결할 수 있지만 그것이 효과가 없다는 것은 짜증나게한다.
편집 : 위의 예를 사용하면 실제로 잘 작동합니다. 제 상황에서는 jquery 코드가 외부 Javascript 모듈에 있었고 확실히 작동하지 않았습니다. 페이지 자체에서 코드를 스크립트 태그로 옮겼습니다. 나는 아직도 외부 파일에서 작동하지 않는 이유를 알아 내지 못했지만 어떤 지점에서 해결할 수 있다면 여기로 돌아올 것입니다.
크롬에서 jQuery 1.4.2로 스크립트를 실행하면 원하는 모든 ID가 알립니다. – jAndy
@tauren 최근에 비슷한 문제가있었습니다. 제발 시도해보십시오 실험 : 텍스트/HTML을 다른 것으로 바꾸십시오 (텍스트/템플릿 제안). 그러면 외부 스크립트와 호환되는지 확인하십시오. – UpTheCreek