我在中有很多独特的选项
如何使用jquery查找给定的select中是否已经存在给定的选项?
例如:
<select id="combobox">
<option value="">Select one...</option>
<option value="Apple">Apple</option>
<option value="Banana">Banana</option>
<option value="Pears">Pears</option>
</select>
新的有效选项:Pear
- 新的无效选项:Apple
假设新的选项文本存在于newOption
变量中:
$('button').click(
function() {
var newOption = $('#newOptionInput').val(),
opts = [];
$('#combobox option').each(
function() {
opts.push($(this).text());
});
if ($.inArray(newOption, opts) == -1) {
$('<option />')
.val(newOption)
.text(newOption)
.appendTo('#combobox');
}
});
JS Fiddle演示。
编辑以更正上述代码(我忘记了当找不到值时,$.inArray()
返回-1
,而不是false
),并使用更合适的选择器。
参考文献:
append To()
。each()
。$. inArray()
/jQuery.inArray()
.推送()
。text()
。val()
。我假设您想按value
而不是按文本内容搜索。在您的示例中,它们总是相同的,但可能不会总是...
var toAdd = 'Apricot',
combobox = $('#combobox');
if (!combobox.find('option[value="' + toAdd + '"]').length) {
combobox.append('<option value="' + toAdd + '">' + toAdd + '</option>');
}
if (!$("#combobox option[value='Apple']").length)
// Add it
使其可重复使用可以:
if (!$("#combobox option[value='" + value + "']").length)
// Add it
现场演示
不区分大小写:
var isExist = !$('#combobox option').filter(function() {
return $(this).attr('value').toLowerCase() === value.toLowerCase();
}).length;
完整代码:(演示的)
$('#txt').change(function() {
var value = this.value;
var isExist = !!$('#combobox option').filter(function() {
return $(this).attr('value').toLowerCase() === value.toLowerCase();
}).length;
if (!isExist) {
console.log(this.value + ' is a new value!');
$('<option>').val(this.value).text(this.value).appendTo($('#combobox'));
}
});
现场演示
问题内容: 使用核心jQuery,如何删除选择框的所有选项,然后添加一个选项并选择它? 我的选择框如下。 编辑:以下代码有助于链接。但是,(在Internet Explorer中)未选择添加的选项。(我确实在和中都使用了相同的“值” 。) 编辑:试图使其模仿此代码,每当重置页面/窗体时,我都使用以下代码。该选择框由一组单选按钮填充。距离更近,但是未像使用时那样显示选择的选项。我现有的代码没什么错-
问题内容: 我希望这个问题很简单。 我有一个像这样的普通盒子 我可以获取选定的值(通过使用)和选定项的显示值(通过使用)。 但是,如何在标签中像附加值一样存储呢?我希望能够做类似的事情并获取属性的值(在示例中为3.2)。 问题答案: HTML标记 码 通过使用HTML5中的数据属性,您可以以语法上有效的方式向元素添加额外的数据,该方式也可以从jQuery轻松访问。
我有一些连接的选择工作良好。顺便说一句,我想把这些选择转换成很小的选择,但我发现这样做有些困难。例如,我有一个ID为的select。当我选择的一个大于零的选项时,应该会出现其他选择。之后,当我更改级联选择的选项(例如在中)时,该选项会正确更改。但是,当我选择另一次时,中的选项zero和我选择另一次时,中大于zero的选项会出现,而另一次选择中已经选择了选项。 这是我的javascript代码: 这
问题内容: 我希望此javascript在id =“ mainSelect”的选择中创建12到100个选项,因为我不想手动创建所有选项标签。你能给我一些指导吗?谢谢 问题答案: 您可以通过一个简单的循环来实现: JS Perf比较了我和imeVidas的答案,是因为我认为他的表情比我的看起来更容易理解/直观,而且我想知道这将如何转化为实现。根据Chromium14/Ubuntu11.04的说法,其
问题内容: 我有下表,我必须从中获取非唯一行 我想获取column的所有行,至少在两行中具有相同的值。 上表查询的输出必须为 我尝试了以下请求,但均未成功: 问题答案: 尝试这个: 您发布的数据的结果:
问题内容: 好的,我知道这已经得到了回答(使用Ajax或JavaScript选择下拉列表选项后,在同一页面上执行PHP脚本),但是对于以前从未使用过AJAX的人来说,答案并不是很有帮助。如果有人从下拉列表中选择一个选项,如何运行类似创建的查询? 问题答案: 首先,您必须使用Javascript触发AJAX请求。但是,我将通过使用jQuery(一个Javascript库)指导您。 您的HTML: 之