0
とヌルである私は、jQueryの2.2.4と小さなスクリプトを使用していますが、スクリプトはjQueryのは私に次のエラーを与える行っている:jQueryのは、TypeError例外を取得:aはコード
コンソールがa.ownerDocument」を指しているTypeError: a is null
...th>0},fa.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fa....
「
は今、このエラーが起こる作るための責任のコードです:
:$(function() {
$('[class*="inc:"]').each(function() {
var match = /inc:(\S+)/.exec(this.className || '');
match && $(this).inc(unescape(match[1]));
});
});
私のindex.htmlコードはこれですここ
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript" src="inc.js"></script>
</head>
<body>
<p class="inc:footer.html">This text will be replaced
with footer.html</p>
</body>
</html>
がいっぱいinc.jsです:
(function($) {
$.fn.inc = function(url, transform, post, t) {
return this.length && url ? this.each(function() {
t = $(this);
$.ajax({
url: url,
success: function(txt, jqXHR, textStatus) {
t.html($.isFunction(transform) ? transform(txt, url) : txt);
$.isFunction(post) && post(url, jqXHR, textStatus);
}
});
}) : this;
};
$(function() {
$('[class*="inc:"]').each(function() {
var match = /inc:(\S+)/.exec(this.className || '');
match && $(this).inc(unescape(match[1]));
});
});
})(jQuery);
は、どのように私はこの問題を解決することができますか?
これは 'class'属性の暴力的な虐待です。 CSSセレクタでなければ 'class'を使わないでください!代わりに、もっと論理的なものを使用してください。 '
' jQueryは '$( '[data-include]')でこれにアクセスできます。 ); ' –
@RoryMcCrossan McCrossan、inc.js全体を質問に追加しました。 –