Javascript 检查选择框是否包含特定optgroup内的字符串
我的代码中有一行是这样写的:“如果选择框中没有相同的选项,请做些什么。”目前,只有在没有同名学校的情况下,才会创建“霍格沃茨”选项 我需要将其变成“如果选择框在同一个optgroup下不包含相同的选项,则插入新选项”。因此,如果在“Hogsmede”optgroup中已经有一所“Hogwarts”学校,我不希望创建第二所。但如果在洛顿还有另一所“霍格沃茨”学校,我希望它出现在“伦敦”选项组中Javascript 检查选择框是否包含特定optgroup内的字符串,javascript,jquery,Javascript,Jquery,我的代码中有一行是这样写的:“如果选择框中没有相同的选项,请做些什么。”目前,只有在没有同名学校的情况下,才会创建“霍格沃茨”选项 我需要将其变成“如果选择框在同一个optgroup下不包含相同的选项,则插入新选项”。因此,如果在“Hogsmede”optgroup中已经有一所“Hogwarts”学校,我不希望创建第二所。但如果在洛顿还有另一所“霍格沃茨”学校,我希望它出现在“伦敦”选项组中 // Store optgroup in a variable. schoolObject.town i
// Store optgroup in a variable. schoolObject.town is a string such as 'Hogsmeade'.
$optgroup = $("#schools").find("optgroup[label='" + schoolObject.town + "']");
// schoolObject.name is the name of a school, such as 'Hogwarts'.
// I need to modify the condition in the next line.
if ($("#schools option:contains('" + schoolObject.name + "')").length == 0) {
// Insert new option
}
由于您已经有了对
optgroup
元素的引用,因此可以使用find()
检查其中是否存在具有指定文本的选项
:
$optgroup = $("#schools").find("optgroup[label='" + schoolObject.town + "']");
if ($optgroup.find("option:contains('" + schoolObject.name + "')").length == 0) {
// Insert new option
}