(Questo) non funziona;Risultati in "Uncaught TypeError: non può leggere la proprietà" sottostringa "di indefinito"
-
23-12-2019 - |
Domanda
Ho il seguente codice che esegue il debug di ispettore Chrome con l'errore "Uncaught TypeError: impossibile leggere la proprietà" sottostringa "di undefined":
<script type="text/javascript">
$(function countComments() {
var mcount = '//api.moot.it/postcounts?path=/forum/comments:' + $(this).closest('article').attr('id').substring(8);
$.getJSON(mcount, function(json) {
var results = $('.entry-actions');
$.each(json, function(key, val) {
results.prepend('<a class="entry-comments" href="{permalink}#comments" title="Comments">' + val['size'] + ' Comments</a>');
});
});
});
</script>
.
Sono abbastanza sicuro che il problema è con (this)
, ma l'ho usato correttamente in uno script diverso con .click
e quel codice funziona bene.
è perché (this)
non può essere utilizzato su .ready
?Se è così, come potrei ottenere questa funzione per lavorare con il codice alternativo?
Modifica con HTML:
<article id="article-5344bff8e4b01730378236ff">
<header class="entry-header cf">
<p class="entry-actions"></p>
</header>
<div class="entry-title-wrapper">
BLOG CONTENTS
<div class="entry-injection">
<script type="text/javascript">
$(function countComments() {
var mcount = '//api.moot.it/postcounts?path=/forum/comments:' + $(this).closest('article').attr('id').substring(8);
$.getJSON(mcount, function(json) {
var results = $('.entry-actions');
$.each(json, function(key, val) {
results.prepend('<a class="entry-comments" href="{permalink}#comments" title="Comments">' + val['size'] + ' Comments</a>');
});
});
});
</script>
</div>
</div>
</article>
. Soluzione
Il problema è che nella funzione Document Ready Function this
punti per documentare http://jsfiddle.net/irvininominin/j2r5v/
In questo caso non è possibile avere alcun elemento genitore article
del documento, quindi la tua funzione solleva l'errore http://jsfiddle.net/irvininminin/j2r5v/1/ .
Penso che tu debba ottenere tutti i tuoi elementi div
in base alle tue esigenze e per ciascuno di essi esegue la funzione corrente;Nel contesto di ciascun this
sarà l'elemento corretto.