Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果文本不是数字,则将If语句更改为“无”_Javascript - Fatal编程技术网

Javascript 如果文本不是数字,则将If语句更改为“无”

Javascript 如果文本不是数字,则将If语句更改为“无”,javascript,Javascript,我试图从数据层中提取一个值来触发一段HTML。不过,如果值是“未定义”而不是实际数字,我不希望它触发 我怎样才能解决这个问题?尝试了一切,但它返回的是真/假,而不是不开火 $(document).ready(function () { for (var i = 0, len = dataLayer.length; i < len; i++) { if (dataLayer[i].event === "productView") var vie

我试图从数据层中提取一个值来触发一段HTML。不过,如果值是“未定义”而不是实际数字,我不希望它触发

我怎样才能解决这个问题?尝试了一切,但它返回的是真/假,而不是不开火

$(document).ready(function () {
    for (var i = 0, len = dataLayer.length; i < len; i++) {
        if (dataLayer[i].event === "productView")
            var viewed = dataLayer[i].P2;
    }


    function isOnScreen(element) {
        var curPos = element.offset();
        var curTop = curPos.top - $(window).scrollTop();
        var screenHeight = $(window).height();
        return (curTop > screenHeight) ? false : true;
    }

    var intervalId = setInterval(function () {
        var addtocart = $('#add-to-cart');
        if (isOnScreen(addtocart) === true) {
            $('.product-image.main-image').before("<div id='social-overlay' style='color: #fff;text-transform: uppercase;font-family: Muli,Arial,Helvetica,sans-serif; font-size: 11px; font-weight: 800;background: #867dae; opacity: 0.8; padding-top: 10px; padding-bottom: 10px; position: absolute;z-index: 1; width: 100%;'>" + viewed + " people viewed item in the last 24 hours</div>")
            setTimeout(function () {
                $('#social-overlay').fadeOut(1000);
            }, 7000);

            clearInterval(intervalId);
        }
    }, 500);
}); 
$(文档).ready(函数(){
对于(var i=0,len=dataLayer.length;i屏幕高度)?false:true;
}
var intervalId=setInterval(函数(){
var addtocart=$(“#添加到购物车”);
如果(isOnScreen(addtocart)==true){
$('.product image.main image')。之前(“+viewed+”过去24小时内查看项目的人员”)
setTimeout(函数(){
美元(“#社会覆盖”)。淡出(1000);
}, 7000);
clearInterval(intervalId);
}
}, 500);
}); 

检查您拥有的setInterval函数中是否未定义变量“viewed”,并且仅当所查看的变量有效时,才使用before函数添加html值

    var intervalId = setInterval(function() {
    var addtocart = $('#add-to-cart');
    if ( typeof viewed !== 'undefined' && isOnScreen(addtocart) === true) {
       $('.product-image.main-image').before("<div id='social-overlay' style='color: #fff;text-transform: uppercase;font-family: Muli,Arial,Helvetica,sans-serif; font-size: 11px; font-weight: 800;background: #867dae; opacity: 0.8; padding-top: 10px; padding-bottom: 10px; position: absolute;z-index: 1; width: 100%;'>" + viewed + " people viewed item in the last 24 hours</div>") ;   
      setTimeout(function(){
          $('#social-overlay').fadeOut(1000);
      }, 7000);

      clearInterval(intervalId);  
  } 
  }, 500);
var intervalId=setInterval(函数(){
var addtocart=$(“#添加到购物车”);
如果(已查看的类型!='undefined'&&isOnScreen(addtocart)===true){
$('.product image.main image')。之前(“+viewed+”过去24小时内查看项目的人员”);
setTimeout(函数(){
美元(“#社会覆盖”)。淡出(1000);
}, 7000);
clearInterval(intervalId);
} 
}, 500);

错误发生在哪一行?请在代码中添加一条注释。请问:“通过一个值”是什么意思?“点燃一片HTML”是什么意思?您指的是哪个值?没有名为“value”的变量,所以这可能意味着什么。被查看的变量应该是通过产品视图的值来完成的,这是有效的。但是,有时该值“未定义”,而不是2,3,4(或任何数值)。当它未定义时,我不希望它显示,只有当它是一个数字时,我才希望它显示。对不起,但这并不能澄清任何事情。“渡过难关”不是我熟悉的任何术语。“激发一段HTML”也是如此。再说一遍,您指的是哪个值?变量名是什么?