选中“选择文本”,如果包含三个以上选项,则隐藏包含文本的选项,并在第一次选择时更改文本,不选择任何选项

时间:2019-05-10 15:40:33

标签: javascript jquery

这与我的原始问题有点类似,尽管与If text matches string and if text does not match string不太相同。

在这种情况下,我想做的是检查“选择文本”并且它也具有3个以上的选项(因为我的CMS需要多个选项,所以我需要2个虚拟的“默认值1,默认值2”值),浏览器会在“跨度”中隐藏包含文本“默认”的选项,并在不选择任何选项的第一选择上更改文本。

if语句的第一部分通过在浏览器和iOS上隐藏带有“默认x”文本(如果存在)的选项而起作用,但是第一个选择的“无选项”文本适用于该选项的所有“选择”第二部分。

尝试过“最接近”和“父”,但是最接近选择所有“选择”,而我只希望将它应用于那些遵循if &&规则的显式选择。

<script>
jQuery(document).ready(function() {

  $('select option').each(function() {
    var ourOption = $(this).text().toLowerCase(); // convert text to Lowercase
    var str = "Default";
    var res = str.toLowerCase();

    if ((ourOption.indexOf(res) > -1) && ($(this).parent('select').has('option').length < 3)) {
      $(this).wrap('<span>'); // hide 'Default' options on iphone
      $(this).closest('select').find('option:nth-child(1)').text('Currently No Trial Classes'); // is currently applying to all selects?
    }

  })

});
</script>

也尝试过

<script>

jQuery(document).ready( function() {

  $('select').each(function() {

 $('select option').each(function() {
  var ourOption = $(this).text().toLowerCase(); // convert text to Lowercase
  var str = "Default";
  var res = str.toLowerCase();
  var length = $(this).parent('select'); 

   if ((ourOption.indexOf(res) > -1) && (length.has('option').length < 3) ) {

    $(this).wrap('<span>'); // hide on iphone
 $(length).find('option:nth-child(1)').text('Currently No Trial Classes'); // is currently applying to all selects?
}
})
 }) 
});
</script>

“选择”时的预期行为(请注意需要针对多个选择)

如果除“默认x”之外还有其他选项

<select class="input input-select w-select" required="">
<option selected="" value="">Select Class</option>
<span><option>Default 1</option></span> 
<span><option>Default 2</option></span>
<option>Mayfair</option>
<option>Marylebone</option>
<option>London Bridge</option>
</select>

如果除“默认x”之外没有其他选项

<select class="input input-select w-select" required="">
<option selected="" value="">Currently No Trial Classes</option>
<span><option>Default 1</option></span> 
<span><option>Default 2</option></span>
</select>

0 个答案:

没有答案