我需要删除下拉列表中没有特定值的所有选项。这是我的代码: `
<select name="worker">
<option value="0">John Doe</option>
<option value="5">Jim Smith</option>
<option value="6">Jane Doe</option>
</select>
`
我在wordpress中,基本上需要说,“如果当前用户是5(Jim Smith),那么只能在下拉列表中显示他。任何帮助都会非常感激。
以下是生成下拉列表的php代码:
/* Workers */
$workers = $wpdb->get_results("SELECT * FROM " . $this->workers_table . " " );
$html .= '<label>';
$html .= '<span class="title">'.__('Provider', 'appointments'). '</span>';
$html .= '<select name="worker">';
// Always add an "Our staff" field
$html .= '<option value="0">'. __('No specific provider', 'appointments') . '</option>';
if ( $workers ) {
foreach ( $workers as $worker ) {
if ( $app->worker == $worker->ID ) {
$sel = ' selected="selected"';
}
else
$sel = '';
$html .= '<option value="'.$worker->ID.'"'.$sel.'>'. $this->get_worker_name( $worker->ID, false ) . '</option>';
}
}
$html .= '</select>';
$html .= '</label>';
答案 0 :(得分:2)
您可以使用jquery remove()
方法使用attribute not equal selector
删除所有与某个值不匹配的项目
var removeItemVal="5";
$('#selectId').find('option[value!="'+removeItemVal+'"]').remove();
答案 1 :(得分:2)
如果您不使用jQuery,可以使用querySelector()
选择select元素,使用.removeChild()
删除脏option
元素。
var userId = 5;
[].slice.call( document.querySelector('select[name="worker"]').children )
.forEach(function(elem) {
if ( elem.value != userId )
elem.parentNode.removeChild(elem);
});