- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不使用 removeChild()
也没有尝试在有东西之前删除一些东西。
jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot read property 'removeChild' of null
at m (jquery-3.3.1.min.js:2)
at Function.globalEval (jquery-3.3.1.min.js:2)
at text script (jquery-3.3.1.min.js:2)
at Ut (jquery-3.3.1.min.js:2)
at k (jquery-3.3.1.min.js:2)
at XMLHttpRequest.<anonymous> (jquery-3.3.1.min.js:2)
at Object.send (jquery-3.3.1.min.js:2)
at Function.ajax (jquery-3.3.1.min.js:2)
at Function.w._evalUrl (jquery-3.3.1.min.js:2)
at Re (jquery-3.3.1.min.js:2)
我收到 $.ajax
html 并将它.html()
放入一个 div 容器中。
$(".kontakt").click(function(a) {
$('.opt-out').fadeOut();
a.stopPropagation()
a.preventDefault()
$.ajax({async: true,
type: "POST",
url: "classes/handle.ajax.class.php",
data: {
class: "kontakt"
},
success: function(a) {
$(".link-container").html(a)
$('.link-container').fadeIn();
blur();
}
})
})
最佳答案
查看源代码,我发现了如何设置 ajax:
jQuery.ajaxSetup( {
accepts: {
script: "text/javascript, application/javascript, " +
"application/ecmascript, application/x-ecmascript"
},
contents: {
script: /\b(?:java|ecma)script\b/
},
converters: {
"text script": function( text ) {
jQuery.globalEval( text ); /* note to this method */
return text;
}
}
} );
那么,让我们看看globalEval 方法:
globalEval: function( code ) {
DOMEval( code );
},
现在深入了解 DOMEval 方法:
function DOMEval( code, doc, node ) {
doc = doc || document;
var i,
script = doc.createElement( "script" );
script.text = code;
if ( node ) {
for ( i in preservedScriptAttributes ) {
if ( node[ i ] ) {
script[ i ] = node[ i ];
}
}
}
/* removeChild is being called */
doc.head.appendChild( script ).parentNode.removeChild( script );
}
您可能知道 parentNode
为 null 并且在 null 上调用 removeChild 会引发错误。在这里,在前面的代码中,您可以看到 script
分配了 text
属性,该属性的值设置为 code
。 code
是DOMEval
方法的参数。这实际上是您可以在 ajaxSetup
中找到的 text
参数。
ajaxSetup
在 ajax
方法上被调用(您可以查看源代码)。其中有 url
和 options
参数。在 options
参数中你可以 find使用 dataType
属性。如果未设置数据类型,它将猜测其类型,服务器可能会在其中返回 null
或 {}
的响应。
因此,我建议您在使用 jQuery.ajax
时设置正确的 dataType
。这应该可以解决您的问题。
更新:
好吧,如果服务器返回的响应格式不正确,那么它也可能会抛出错误。因此,验证服务器是否返回良好的响应。根据您的评论,我调试了代码,发现响应返回的不是很好。
您的响应中还有以下 html 导致了问题:
<head>
<meta name='robots' content='noindex'>
</head>
请从响应源中删除它们,然后这应该可以解决问题。
关于javascript - 未捕获的类型错误 : Cannot read property 'removeChild' of null without using removeChild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53458658/
这个问题已经有答案了: TypeError: Illegal Invocation on console.log.apply (1 个回答) 已关闭 5 年前。 我编写了这个简单的代码来删除 h2 元
我不使用 removeChild() 也没有尝试在有东西之前删除一些东西。 jquery-3.3.1.min.js:2 Uncaught TypeError: Cannot read property
var first_content = document.getElementById('first-content'), offered_games = document.getElementByI
我使用 document.createElement 创建了许多新的页面元素(在一些任意层次结构中),并且一直在使用 element.removeChild() 删除我不再需要的元素。我想知道这是否也
我有一个表格,我可以在其中添加带有输入字段的新行。也有可能删除添加的输入字段。删除整行是可行的,但删除单元格内的单个输入字段会出现问题。这是代码: cell1=document.getElementB
我想在提交表单后显示一条消息,并将表单从页面中删除。 脚本的第一部分有效,但第二部分(我尝试删除表单的地方)无效。 有什么建议吗? $(document).ready(function () {
HTML: Javascript: function addfunc
我正在尝试在 ID="prnt"的 DIV 下动态添加子 DIV。添加节点工作正常没问题。然而奇怪的是,当涉及到删除节点时,它只删除偶数编号的节点,包括 0。为什么会这样,我可能是一些愚蠢的东西,但它
我已经创建了一个可以添加的表单域,但我无法删除它。不确定为什么它不起作用,我想也许我传递了错误的参数?我尝试了很多变化。 What key fatures are you looking for?
我有一个代码,可以在点击电影名称后获取 Angular 色名称和性别。此信息出现在模态窗口中,我的目标是在每次关闭模态时删除带有字符的 HTML 元素,因此如果我选择另一部电影,则会出现新的字符集,而
我尝试下一秒放置一个元素,然后删除第二个元素,但它不起作用。看例子:http://jsfiddle.net/CZCGG/ 最佳答案 getElementsByTagName 的结果是一个事件节点列表。
我觉得我误解了 .removeChild 的工作原理。我这里有一些代码: //organization is a string value gotten from an Input node if (
你能帮我一下吗?为什么 removeChild 在我的代码中不起作用? divId = $(".File[rel='" + fileId.substring(0, 32) + "']");
window.onload = initPage; var firstname = false; var lastname = false; function initPage() { add
我有一个将“div”子节点附加到父节点的函数,然后我需要使用 removeChild() 方法删除这个子节点,但它不起作用。 这是我的代码: function ColorCards()
我有一个看起来像这样的表单: 我还有一个按钮,当按下该按钮时,它会调用一
我正在编写一小段简单的代码来在鼠标位于框中的任何位置绘制像素。我也想要一个清除按钮。绘图工作正常,但我似乎无法使用清除按钮。以下是我的 .js 文件的相关部分: function pixel(x, y
我有下面的一段代码,它在文档中找到类名为 foo 的所有元素,然后将它们全部删除 function(doc) { var items = doc.getElem
其他堆栈答案,例如 this和 this似乎是特殊情况,我相信我的情况更为普遍。我在我的 js 中这样做: var markerDiv = document.createElement("div");
removeChild 函数真的完全删除了子节点吗?或者它只是删除作为指定父节点子节点的元素?如果真的不删除元素,有没有办法彻底删除元素? 最佳答案 removeChild 方法只是将它从其父对象中移
我是一名优秀的程序员,十分优秀!