Najkrótsza możliwe wyjaśnienie:
Próbujesz kierować na skrypt podrzędny z #target
.
Na przykład, jeśli znaczniki były do skutku ...
<div id="target"><script type="store"></script></div>
... Twój wybór jQuery będzie działać.
aby zaznaczyć wszystkie elementy skrypt typu pewnej wartości zrobić:
$('script[type="value"]')
Aby wybrać konkretny skrypt, który ma identyfikator, a także, czy:
$('script#id[type="value"]')
One można również ustawić docelowy skrypt bez identyfikatorów:
<script>
// Prevent Global Scope Pollution
(function($){
// DO - Use it outside of an event...
var Script_Self = $('script').last();
console.log(Script_Self);
// DONT - Use it inside of an event...
$(document).on('ready', function() {
var Script_Self = $('script').last();
console.log(Script_Self);
});
})(jQuery);
</script>
<script>
// Prevent Global Scope Pollution
(function($){
// The event will target me :(
})(jQuery);
</script>
Po uruchomieniu tego kodu zdasz sobie sprawę, że pierwszy skrypt zostanie skierowany na siebie i zostanie wyświetlony na konsoli, a także docelowy skrypt w dokumencie z komentarzem // The event will target me :(
.
Powodem tego jest to, że poza zdarzeniem, ostatnim elementem, który ma zostać dodany do DOM, jest znacznik skryptu wykonujący instrukcje, co oznacza logicznie ostatni tag skryptu w $('script')
.
Jednak wewnątrz zdarzenia, w tym przypadku document.on('ready')
, czeka, aż DOM zakończy ładowanie, aby wszystkie dodatkowe znaczniki skryptów, które mogą istnieć w dokumencie, zostaną załadowane i zastąpią pożądany cel .last()
.
Dlaczego ten selektor złożony? Ponieważ tylko jeden element może mieć podany identyfikator, powinieneś po prostu użyć '$ ('# cel')' –
OP jest zainteresowany "wszystkimi elementami". – RedYetiCo