gpt4 book ai didi

javascript - 如何使用条件连接字符串?

转载 作者:行者123 更新时间:2023-12-01 01:47:58 24 4
gpt4 key购买 nike

我的 XML 如下。我在 <messageset> 中有两个可能的标签名称标签。它必须是 <message><time> 。根据其中的标签,我需要将不同的内容设置为 div页面上的元素。

如何在这里使用 if/else 条件?

var x = xmlDoc.getElementsByTagName("messageset");
for (...) {
//some codes
var msg = x[i].getElementsByTagName("message")[0].tagName;
var row = "<div>" +
if (msg == "message") {
x[i].getElementsByTagName("message")[0].childNodes[0].nodeValue;
}
else {
x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue
}
+"</div>"
}

XML 文件:

<messages>
<messageset>
<name>torje</name>
<time>1533904445</time>
<message>A hi fyi bk MLS egg FG ch bhi CDG jk IC</message>
</messageset>
<messageset>
<name>torje</name>
<time>1533905156</time>
<link>msgfh.gif</link>
</messageset>
</messages>

编辑: Firefox 提示语法错误 if (msg == "message")... 。我认为这不是使用条件的正确位置。

编辑 使用内联代码后它仍然无法工作可能是我的条件不正确,如果 <messagset>已标记该节目,<name> + <message>如果有标签则显示 <name> + <message>内部行变量

(msgtg != null ? x[i].getElementsByTagName("message")[0].childNodes[0].nodeValue  : x[i].getElementsByTagName("link")[0].childNodes[0].nodeValue) +

最佳答案

类似这样的吗?

var getMessage = function(messageSetNode) {
var wrapInDiv = function(msg) {
return "<div>" + msg + "</div>";
}
var messageNode = messageSetNode.getElementsByTagName("message")[0];
if(messageNode) {
return wrapInDiv(messageNode.childNodes[0].nodeValue);
}
return wrapInDiv(messageSetNode.getElementsByTagName("link")[0].childNodes[0].nodeValue);
}

var x = xmlDoc.getElementsByTagName("messageset");

for(...) {
var row = getMessage(x[i]);
}

这里的想法是分离关注点,在一个函数中我选择消息(具有他自己的范围),我只是在循环内调用它,我还在 getMessage 函数中添加了一个函数将所有内容包装在 div 中.

但是如果没有链接标记或子节点,该函数就不安全,我想您已经意识到这一点,并且您不希望出现无提示错误。

希望有帮助。

关于javascript - 如何使用条件连接字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51815587/

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