gpt4 book ai didi

Javascript ReplaceChild 不显示消息

转载 作者:行者123 更新时间:2023-12-02 21:20:59 24 4
gpt4 key购买 nike

我有这个代码

 <!DOCTYPE html>
<html lang="it">
<head>
<script>
function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}


function writeMess(node, mess){
elementEx= document.getElementsByTagName("br").length;
if(elementEx < 5){
newerrmess = document.createTextNode(mess);
node.replaceChild(newerrmess, node.firstChild);
br = document.createElement("br");
insertAfter(br, node);
}
}


function Add(){
try{

writeMess(nodoMessErr1, "");
var capsule = parseInt(nodoCapsule.value);

/* Check correct values */
if(!isNaN(capsule)){
totcapsule = capsule;
}
else{
/* Err Mess */
writeMess(nodoMessErr1, "Error Mess 1");
return;
}
}
catch( e ){
alert("Aggiunta " + e);
return;
}
}

var nodoAdd;
var nodoCapsule;
var nodoMessErr1;
var totcapsule;


/* Core function */
function gestoreLoad(){

try{

nodoAdd = document.getElementById("aggiunta");
nodoCapsule= document.getElementById("capsule");
nodoMessErr1 = document.getElementById("adderr");


nodoAdd.onclick = Add;
nodoCapsule.value = "";

var TextNodeErr_1= document.createTextNode("");
nodoMessErr1.appendChild(TextNodeErr_1);


}
catch(e){
alert("gestoreLoad " + e);
}
}



window.onload = gestoreLoad;
</script>
</head>
<body>
<span id="adderr"></span>

<input type="text" id="capsule" />
<input type="button" id="aggiunta" value="Add"/>



</body>
</html>

函数 writeMess 充当消息(文本节点)的“写入器”,将其作为 span 的子节点追加并在 span 后放置“< br >”

看看“Add”函数,我的程序的工作原理就像当用户将 NaN 值放入“nodoCapsule.value”时显示一条错误消息(默认“”)来提醒他。

我尝试按下按钮(id="Aggiunta")并在其中写入 NaN 值,但没有显示任何消息(仅创建了一个“< br > ”,但前面没有任何文本)

不知道为什么,有什么解决办法吗?

编辑 - 这取决于浏览器,其他浏览器向我显示错误消息,但继续创建“
”。当显示错误消息时,我只想显示一个“< br >”。没有消息,也没有 br 消息未显示的地方。

最佳答案

您只需检查是否已经存在 br 标签

您可以通过以下方式查看

if (node.nextElementSibling.tagName.toLowerCase() !== "br") {
// add br
}

工作示例

function insertAfter(newNode, referenceNode) {
referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);
}


function writeMess(node, mess){
elementEx= document.getElementsByTagName("br").length;
if(elementEx < 5){
newerrmess = document.createTextNode(mess);
node.replaceChild(newerrmess, node.firstChild);
if (node.nextElementSibling.tagName.toLowerCase() !== 'br') {
br = document.createElement("br");
insertAfter(br, node);
}
}
}


function Add(){
try{
debugger;
writeMess(nodoMessErr1, "");
var capsule = parseInt(nodoCapsule.value);

/* Check correct values */
if(!isNaN(capsule)){
totcapsule = capsule;
}
else{
/* Err Mess */
writeMess(nodoMessErr1, "Error Mess 1");
return;
}
}
catch( e ){
alert("Aggiunta " + e);
return;
}
}

var nodoAdd;
var nodoCapsule;
var nodoMessErr1;
var totcapsule;


/* Core function */
function gestoreLoad(){
debugger;
try{

nodoAdd = document.getElementById("aggiunta");
nodoCapsule= document.getElementById("capsule");
nodoMessErr1 = document.getElementById("adderr");


nodoAdd.onclick = Add;
nodoCapsule.value = "";

var TextNodeErr_1= document.createTextNode("");
nodoMessErr1.appendChild(TextNodeErr_1);


}
catch(e){
alert("gestoreLoad " + e);
}
}



window.onload = gestoreLoad;
<body>
<span id="adderr"></span>

<input type="text" id="capsule" />
<input type="button" id="aggiunta" value="Add"/>



</body>

关于Javascript ReplaceChild 不显示消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60846515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com