jQuery空选择,但不是第一个选项
jQuery empty select but not the first option
我正在WordPress中使用jQuery AJAX加载两个下拉菜单。我将AJAX数据作为一个字符串,并简单地将这些<option>
附加到我的<select>
字段中。它运行良好。但每次都不会清除之前的附加。所以它实际上是在添加重复选项。
所以我做了一个更改,在<select>
字段中添加了empty()
:
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {"action": "load_product",
"company_id": company_id
},
success: function (data) {
jQuery('#company-products').empty().append( data );
}
});
但默认情况下,我在select字段中有一个空值选项,它只是简单地删除了那个选项。
<select name="product" id="company-products" class="form-control" required>
<option value=""><?php _e( 'Select a product', 'textdomain' ); ?></option>
</select>
如何添加附加选项,但即使使用空的(value=""
)选项也不能为空
请注意,我知道我可以从jQuery传递空字段,但出于翻译目的,我不能从那里传递。因此,我想要一个使用jQuery的可靠解决方案,同时保留第一个选项。
我甚至试着把它改成:
jQuery('#company-products').not(':first-child').empty();
jQuery('#company-products').append( data );
它不起作用,甚至没有附加任何内容。:(
尝试使用nextAll()
-删除空<option>
之后的所有元素
var emptyOp = $('#company-products :first-child');
emptyOp.nextAll().remove();
emptyOp.after(data);
示例演示
还有许多其他选择器可以使用,
$('#company-products :gt(0)').remove();
$('#company-products').append(data);
或
$('#company-products :not(:first-child)').remove();
$('#company-products').append(data);
不要使用empty()
,只使用remove()
。
$('#company-products').children('option:not(:first)').remove();
希望这将为您工作
如果你只是想写怎么办
<?php _e( 'Select a product', 'textdomain' ); ?>
JS变量,并在编写时将选项从jQuery传递给您?
var selectOption = '<?php _e( 'Select a product', 'textdomain' ); ?>';
相关文章:
- jQuery空选择,但不是第一个选项
- Thunderbird,如何以编程方式选择第一个选项卡
- jQuery下拉列表未显示第一个选项
- 在v-for中选择中选择框的第一个选项
- Angular始终选择选择元素中的第一个选项
- 为什么嵌入式下拉列表只选择第一个选项
- 如果不在第一个选项卡中,jQuery Accordion会缩小谷歌图表
- 两个选项卡—第一个选项卡在第二个选项卡中处于调试模式时被卡住
- 存储值后,重复重新选择选择下拉菜单的第一个选项
- 追加时保留第一个选项
- 剑道TabstripDons't正确加载第一个选项卡
- 下拉菜单的第一个选项不是一个选项;强制使用其他选项
- Knockoutjs - 如何在选择下拉列表中预先选择第一个选项
- 从角度“ng-model”选择元素中选择第一个选项,带有一个按钮
- KendoUI 工具栏拆分按钮会自动突出显示下拉列表中的第一个选项.如何使所有选项看起来相同
- jQuery Navigation 始终打开第一个选项
- 使用 JQuery,如何引用同级的第一个选项
- 尝试清空除第一个选项之外的所有选项
- 当从第一个选项中选择一个选项时,如何取消隐藏另一个选择字段
- 谷歌地图放置API V3自动完成 - 在输入时选择第一个选项(并使其保持这种状态)