我在 HTML 下拉菜单中有一系列项目,我需要使用 jQuery 找到它们,然后我可以隐藏它们 [使用 .css('display', 'none')
].
它们(在这个例子中)都是 <option>---- Articles</option>
之间的和 <option>---- Jargon Buster</option
> 此范围内的前六项除外!
除了前六个,此范围内所有其他选项的数量和文本都会有所不同(除了领先的 ------
)。
我在想也许我可以使用选择器 $("#edit-menu-parent option:contains('---- Articles')"
和 $("#edit-menu-parent option:contains('---- Jargon Buster')"
不知何故,但我不确定如何使用它们来获取它们之间的项目。
有什么想法吗?
<select id="edit-menu-parent" class="form-select menu-title-select" name="menu[parent]">
<option>---- Clients</option>
<option>---- Testimonials</option>
<option>-- Resources</option>
<option>---- Articles</option>
<option>------ Accessibilty Articles</option>
<option>------ Usability Articles</option>
<option>------ Charities Articles</option>
<option>------ Public Sector Articles</option>
<option>------ Web Development Articles</option>
<option>------ Social Media Articles</option>
<option>------ Are Your Online Forms</option>
<option>------ Benefits of Web Standards</option>
<option>------ Benefits of web accessibility</option>
<option>------ Increase Donations to Your</option>
<option>------ Need More Web Traffic? Get</option>
<option>------ The Secret to Successful ALT</option>
<option>------ Top 10 Email Marketing Tips</option>
<option>------ What PAS 78 Means for Your</option>
<option>------ What is Web Accessibility?</option>
<option>---- Jargon Buster</option>
<option>---- Web Design Tips</option>
<option>------ Colour blindness</option>
<option>------ Create a custom 404 page</option>
<option>------ Download time and usability</option>
<option>------ Full stop to the end of alt</option>
<option>------ Javascript and navigation</option>
<option>---- Your Industry News</option>
</select>
最佳答案
在我的测试 HTML 文件中,我尝试同时调用 .hide()
和 .css("display", "none")
,但它们似乎都不起作用在 Safari(Mac) 中,但在 Firefox(Mac) 中按预期工作。
起初我认为 jQuery 选择器是错误的,但即使我简单地选择 #edit-menu-parent option
也会发生同样的情况。
我创建了一个脚本,用于查找开始和结束元素的索引,然后 slice()
-s 找出需要删除的项目。但是,我使用了 remove()
否则它不起作用。因为据说前六个元素必须保留在那里,所以我在那里有这个 start+6
。
var options = $("#edit-menu-parent option");
var start = options.index( $("option:contains(---- Articles)" ));
var end = options.index( $("option:contains(---- Jargon Buster)" ));
options.slice(start+6,end).remove();
关于jQuery - 在 HTML 下拉菜单中获取特定范围的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2036864/