2017-02-22 100 views
-1

我想使用JQuery根据选定div的值更改复选框的显示。具体而言,如果在facetwp-facet-city下拉列表中选择了“Berlin”,我想隐藏“Neukölln”和“Mitte”复选框。我知道这是可能的使用JQuery,但不幸的是我的技能还不是那个水平(还)。任何帮助将非常感激!在截图中,我突出显示了“柏林”值和Mitte复选框。JQuery根据下拉列表隐藏复选框

截图的网址为:https://www.wgeil.de/listings/?fwp_city=berlin Screenshot

+0

您尝试了哪些解决方案?向我们展示您的代码,并且有人可能会帮助您为您进行调试。 –

+0

我试过这段代码(史提夫),但它不工作。任何想法为什么不呢? ('(change)',function(e){if($(this).val()=='berlin'){(document.ready){function(){('。facetwp-dropdown')。 )($(this).data(“value”)=='mitte') $(this).hide() ); } 如果($(本)。数据( “值”)== '克尔恩'){$ (本).hide();} } ) }) }); – Ron

+0

发布实际代码而不是截图或制作小提琴。这对我们来说会更容易帮助。 – mhshimul

回答

0

尝试是这样的:

$(document).ready(function() { 
    $('.facetwp-dropdown').on('change', function(e) { 
    if ($(this).val() == 'berlin') 
     $('.facetwp-checkbox').each(function(i, v) { 
     if ($(this).data("value") == 'mitte') { 
      $(this).hide(); 
     } 
     if ($(this).data("value") == 'neukolln') { 
      $(this).hide(); 
     } 
     }) 
    }) 
}); 
+0

谢谢,我会给这个镜头! – Ron

+0

不幸的是,它似乎无法工作! – Ron

+0

你在你的HTML中包含了jQuery吗?你能创造一个小提琴吗?这将更容易找出问题。 – mhshimul

0

以一定的启发市的代码,这里是一个可能的解决方案。为了帮助你继续前进,如果某些东西不起作用,你可能想看看它是否会在控制台中丢失错误(然后尝试并调试它们),或者添加一些console.log(/* some variable */);语句来列出某些选择器返回的内容,这可能会让你弄清楚事情失败的地方(或者至少让你指出一个特定的问题)。

// formatting for readability. 
$(document).ready(function() { 
    // Should trigger callback function on change in dropdown. 
    $('.facetwp-dropdown').on('change', function(e) { 

    // Should set the value of the selected dropdown option. 
    let selectedOption = $(this).find(':selected').prop('value'); 

    // Conditional if option equals berlin. 
    if (selectedOption == 'berlin') { 
     // Grab all checkboxes using their parent div. 
     let checkboxes = $('.facet-wrapper').children(); 

     // Use jQuery.each method to iterate over the child elements. 
     $.each(checkboxes, function(index, value) { 
     // Set value of the data attribute. 
     let attribute = $(value).attr('data-value'); 

     // Check data attribute value against either option. 
     if (attribute == 'neukolln' || attribute == 'mitte') { 
      // Hide div if conditional evaluates true. 
      $(value).hide(); 
     } 
     }); 
    }  
    }); 
}); 
+0

谢谢,我会试试这个! – Ron

+0

https://jsfiddle.net/Lkt613yf/ – Ron

+0

你的第一个问题是你将'selectedOption'设置为等于你的选择器,但是在你的条件中试着对'selectOption'进行测试:)(在我的代码示例中这样做了,对不起对于错字)。一旦你修复隐藏在jquery中的东西就像'$('/ *你的选择器* /')一样简单。hide();' –