Tampermonkey:如果不包含字符串,则在下拉列表中隐藏选项

Tampermonkey: Hide Options in Dropdown if they don't contain a string

我正在编写 Tampermonkey 脚本,以使生活更轻松。想象一下:有一个提供 400 多个选项的下拉菜单。但是,我只需要使用其中两个。所以其他的都可以隐藏。

那我该怎么做呢?目前,我正在使用它,但它并没有真正按照我的意愿进行。

var firstCampaignName = "001 - Campaign";
var secondCampaignName = "002 - Campaign";

这是我想保留的两个选项。我一半认为我可以通过在“- Campaign”或其他东西上将它们都匹配来简化它。因为名字几乎相同。但无论如何。所以这是我正在使用的功能。

  $('#dropdown option').each(function(){
    if ('#dropdown option'.text() === firstCampaignName || '#brand option'.text() === secondCampaignName)
    {
        if ($.inArray($(this).text()))
            $(this).show();
        // If not, hide it
        else
            $(this).hide();
    }
});

很明显我做错了什么。在这的某个地方,我遗漏了一些东西。所以,请帮忙?

要从下拉列表中隐藏除 2 个特定选项之外的所有选项,您可以执行以下操作。请注意,正如 charlietfl 的评论所述,跨浏览器不支持隐藏选项,因此您可以选择删除这些选项而不是隐藏它们,因为您提到您不需要它们。

var firstCampaignName = "001 - Campaign";
var secondCampaignName = "002 - Campaign";
$('#dropdown option').each(function() {
  if ($(this).text() === firstCampaignName || $(this).text() === secondCampaignName) {
    $(this).show();
  } else {
    $(this).hide();
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select id="dropdown">
  <option value="1">001 - Campaign</option>
  <option value="2">002 - Campaign</option>
  <option value="3">003</option>
  <option value="4">004</option>
  <option value="5">005</option>
</select>