var strExt = GetAttributeFromItemTable(itemTable, "Ext", "FileType");
我为strExt做了一个提示并解决。 如果(strExt!=“的wav”) { //这工作 }Javascript or operator not working
if (strExt!='wav' || strExt!='mp3')
{
// this does not work.
}
var strExt = GetAttributeFromItemTable(itemTable, "Ext", "FileType");
我为strExt做了一个提示并解决。 如果(strExt!=“的wav”) { //这工作 }Javascript or operator not working
if (strExt!='wav' || strExt!='mp3')
{
// this does not work.
}
你的逻辑是有缺陷的:
如果您的变量strExt
等于'wav'
将不等于'mp3'
,反之亦然和签证。
请更清楚地解释您所需的结果。
我想你想说的是一样的东西(无论'wav'
也不'mp3'
):
if (!(strExt == 'wav' || strExt == 'mp3'))
这在逻辑上等同于(不'wav'
而不是'mp3'
):
if (strExt != 'wav' && strExt != 'mp3'))
试图隐藏或不显示SP中文档库中所有音频/视频文件的“下载副本”。 – 2011-03-17 21:13:06
谢谢zzzBov。第一行代码适用于我。再次感谢 if(!(strExt =='wav'|| strExt =='mp3')) – 2011-03-17 21:20:39
我期望第二表达式的结果是True
不管串strExt
的值(任意扩展是不等于“wav”或不等于“mp3”)。你能指望什么?
你确定你不是指布尔AND而不是OR(“扩展既不是'wav'也不是'mp3'”)?
只要文件类型是音频或视频,我就隐藏了“下载副本”链接。 (共享点开发)。 – 2011-03-17 21:10:16
是的。请阅读我的评论。你想要一个布尔AND。 – chryss 2011-03-17 21:11:16
太好了。感谢您的输入。 – 2011-03-17 21:29:23
这背后的逻辑是没有意义的,你不想这样做:
if ((strExt !== "wav") && strExt !== "mp3") {
}
而不是OR在这种情况下更有意义。
太好了。感谢您的输入。 – 2011-03-17 21:30:24
如果你想进入第二if
,当strExt
不等于两个'wav'
和'mp3'
您需要使用&&
操作。
if (strExt!='wav' || strExt!='mp3')
当strExt='wav'
=>strExt!='wav'
= FALSE; strExt!='mp3'
= true => false或true = true并进入if
声明,并且在strExt='mp3'
时情况类似。
太好了。感谢您的输入。 – 2011-03-17 21:31:04
||说:如果任何条件是真的,我会回到真实的,而不看后面的那些。因此true || false
为真,falls || true
为真。
在你的情况下,你会说“如果strExt不等于wav并且不等于mp3,则执行”。如果其中一个是真的,它会执行。
我在想,你正在寻找& &符号。 logical and
说“只有当每个条件都是真的时候我才会返回true” - 当它发生错误时,它返回false。
我觉得你的代码应该是这样的:
if (strExt!='wav' && strExt!='mp3')
太好了。谢谢Zirak的输入。 – 2011-03-17 21:30:02
什么是strExt在这一切的价值呢? – 2011-03-17 21:06:15
什么不起作用? – 2011-03-17 21:08:50
这应该在strExt真的不等于'wav'或'mp3'的假设下工作。 – 2011-03-17 21:08:53