我在下面写了一些帮助。我现在正试图结合IF声明。这是我想要完成的,如果%%GLOBAL_Availability%%
为空,则不显示按钮。否则,显示按钮并运行脚本。
我做了一些研究并想出了以下内容:
if (%%GLOBAL_Availability%% ==""){
<div><input id="ShopButton" style="display: none";></div>
}
else {
<!--Amazon Shopping button-->
<div><input id="ShopButton" </div>
<script>
document.querySelector("#ShopButton").addEventListener("click",function(){
window.location.href='%%GLOBAL_Availability%%';
},false);
</script>
}
根本不起作用。我是VB.net,只是学习这个方法。
有什么建议吗?
感谢。
答案 0 :(得分:2)
我假设你的变量%% GLOBAL_AVAILABILITY %%是一个字符串,因为你通过测试它是空的来测试它是空的。
在javascript中,我会提供2个测试,如果字符串存在或是空的。
1 - 使用String对象的.length属性。
2 - 检查它是否存在检查%% GLOBAL_AVAILABILITY %%的类型是否为字符串,使用identity运算符===检查该变量是否为string类型。
您的if语句应如下所示:
if(typeof %%GLOBAL_AVAILABILITY%% === typeof string && %%GLOBAL_AVAILABILITY%%.length > 0){
//execute code
}
其次,javascript是为了操纵DOM,所以不需要根据条件插入新的HTML,你可以只操纵现有HTML的属性 - 在这种情况下,设置'#ShopButton'的显示属性没有。这可以这样实现:
document.getElementById('ShopButton').style.display = "none";
因此,您的代码应如下所示:
if(typeof %%GLOBAL_AVAILABILITY%% === typeof string && %%GLOBAL_AVAILABILITY%%.length > 0){
document.getElementById('ShopButton').style.display = "none";
} else{
document.getElementById('ShopButton').style.display = ""; //MAKE VISIBLE
document.getQuerySelector('#ShopButton').addEventListener('click', function(){
document.location.href = '%%GLOBAL_AVAILABILITY%%';
});
}
答案 1 :(得分:1)
您似乎希望输入为“display:none;”如果变量为空,在这种情况下,您只需根据变量更改样式属性。类似的东西:
<div><input id="ShopButton" style="display: none";></div>
<script>
if (%%GLOBAL_Availability%% == "") {
document.getElementById("ShopButton").style.display = "block";
document.querySelector("#ShopButton").addEventListener("click",function(){
window.location.href='%%GLOBAL_Availability%%';
},false);
}
</script>
这将简单地将元素呈现为不可见,然后如果变量不为空,脚本将使其可见。
答案 2 :(得分:0)
<div>
<input id="ShopButton" style="display: none";>
</div>
<script>
if (%%GLOBAL_Availability%% == "") {
document.getElementById("ShopButton").style.display = "block";
document.querySelector("#ShopButton").addEventListener("click",function(){
window.location.href='%%GLOBAL_Availability%%';
},false);
}
</script>
这是你正在尝试做的吗?