我相信从下拉列表中选择这三个ID有更好的方法(ID 115,116和117):
jQuery(document).ready(function($) {
var usedNames = {};
$("select[name='item_meta[115]'] > option").each(function () {
if(usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
var usedNames = {};
$("select[name='item_meta[116]'] > option").each(function () {
if(usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
var usedNames = {};
$("select[name='item_meta[117]'] > option").each(function () {
if(usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
});
我可以缩短此代码,并在第一个变量下选择所有ID吗?
答案 0 :(得分:0)
$("select[name='item_meta[116]'] > option")
.add("select[name='item_meta[117]'] > option")
.add("select[name='item_meta[118]'] > option")
...
或者
var selector = "select[name='item_meta[116]'] > option"
selector += ",select[name='item_meta[117]'] > option"
selector += ",select[name='item_meta[118]'] > option";
$(selector)
...
答案 1 :(得分:0)
var usedNames = {},
pattern = 'select[name="item_meta[<ID>]"] > option', // Create a string pattern for the selector
IDs = [115, 116, 117, 121], // Get your arbitrary list of ID's
selectors = IDs.map(pattern, function (ID) { return pattern.replace('<ID>', ID) }), // return an array of string selectors
elems = $(selectors.join(',')); // query for all of them
$.each( elems, function () {
if(usedNames[this.text]) {
$(this).remove();
} else {
usedNames[this.text] = this.value;
}
});
答案 2 :(得分:0)
您可以使用Attribute Starts With Selector
$("select[name^='item_meta'] > option")