Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 如何比较2个可见的div编号,并根据编号阈值显示div?_Javascript_Jquery - Fatal编程技术网

Javascript 如何比较2个可见的div编号,并根据编号阈值显示div?

Javascript 如何比较2个可见的div编号,并根据编号阈值显示div?,javascript,jquery,Javascript,Jquery,我试图找出如何在jquery中编写我的以下理论,但我遇到了麻烦,因为我更像是一个前端设计师/开发人员,我不太擅长比较/解析 我有一个包含两个跨度的div(#product)。1个跨度包含一个数字('.price-ship-1'),另一个隐藏跨度也包含一个数字('.price-ship-2') “.price-ship-1”始终存在,.price-ship-2”有时存在;如何检查“产品”中两者是否同时存在 如果只有“.price-ship-1”存在,则根据该号码进行我的号码解析并显示隐藏的div。

我试图找出如何在jquery中编写我的以下理论,但我遇到了麻烦,因为我更像是一个前端设计师/开发人员,我不太擅长比较/解析

我有一个包含两个跨度的div(#product)。1个跨度包含一个数字('.price-ship-1'),另一个隐藏跨度也包含一个数字('.price-ship-2')

“.price-ship-1”始终存在,.price-ship-2”有时存在;如何检查“产品”中两者是否同时存在

如果只有“.price-ship-1”存在,则根据该号码进行我的号码解析并显示隐藏的div。但如果两者都存在,则根据“.price-ship-2”进行我的号码解析并添加一个类

目前,我只检查1个数字并将一个类添加到另一个div,但现在需要检查一个额外的数字并添加一个类,但我不确定如何编写它。我意识到我不需要下面的支票,因为“.price-ship-1”总是存在的,它只是在那里,因为我试图自己写,但没有用

我当前的脚本如下:

if ($('.promo-ship-1').length){

$('.promo-ship-1').each(function(){
    var $this = jQuery(this);
    var number=$this.html();
    number=number.substring(1);
    number=parseFloat(number);
    if(number > 99){$this.parents('.ship-banner').addClass('test123');}
});
}
谢谢你抽出时间

更新: 我继承了代码,但还没有100%了解它。深入阅读,我的问题实际上比我最初认为的更复杂。。。为了我的目的,我可能不得不结束这个问题,但我相信其他人会觉得它有用

  • 检查
    $('#product')。查找('span')。长度
    是1还是2
  • 根据值,您可以解析数字并操作两个div。不需要每个语句

  • 如果要检查price-ship-1和price-ship-2的存在性,并且它们都位于id为#product的div下面,那么就更简单了

     //try to only query the dom once, it is an expensive op
     var productDiv = $('#product')
     if (productDiv.length) {
         productDiv.each(function () {
             var $this = jQuery(this);
             var priceShip2 = $('.price-ship-2', $this)
             if (priceShip2.length) {
                 //PRICE 2 EXISTS
             } else {
                 //ONLY PRICE 1 EXISTS
             }
         });
     }
    

    根据您分享的内容,我编写了一段代码来模拟您的场景。我相信您可以在自己的代码中使用它的大部分:

    $(函数(){
    //只是为了找出元素的存在性和可见性。
    函数计算(){
    var prod=$(“#产品”);
    var span1=prod.find('.price-ship-1');
    var span2=span1.同级('.price-ship-2');
    var p=$('p');
    
    if(span2.length Tip:
    $(选择器).is(':visible');
    @MelanciaUK如果它存在并且隐藏了怎么办?
    $('#product')。find('[class^=promo ship]:visible')。length==2
    表示两者都存在并且可见。使用
    $this.text()
    要获得准确的文本,html将返回html格式的文本。--这只是一个离题帮助。您想在何处/何时检查或测试此场景?我的意思是它是在事件中?还是在函数或其他什么东西中?为什么要对
    productDiv执行
    的each()
    当其
    长度
    应仅为1(如果存在)时?选择器是一个
    id
    id
    应该是唯一的。此外,您没有检查第二个元素
    的可见性
    。它可以在那里,但也可以不可见。