#javascript #jquery #css
#javascript #jquery #css
Вопрос:
У меня есть некоторый HTML, который генерируется автоматически, поэтому я не могу изменить его в html напрямую. Но в основном это:
<select name="field2" id="id_18_gen" >
<option value="{1,2}" >Please choose...</option>
<option value="1" >correct</option>
<option value="2" >false</option>
</select>
Теперь я хотел бы добавить скрытый и отключенный атрибут к первому варианту:
<option value="{1,2}" hidden disabled >Please choose...</option>
Я пробовал несколько вещей, например:
let e = document.getElementById(element);
e.options["{1,2}"].hidden ="true";
или
$("#" element "option[value=" "{1,2}" "]").hide();
Но ничего не сработало. Решение на javascript или Jquery было бы отличным, но css тоже подойдет.
Ответ №1:
проверьте, работает ли приведенный ниже код
let e = document.getElementbyId('id_18_gen').firstElementChild;
e.disabled = true;
e.style.visibility = 'hidden';
Ответ №2:
Используйте метод setAttribute().
firstop.setAttribute("hidden","");
firstop.setAttribute("disabled","");
var firstop = document.querySelector("#id_18_gen option:first-child");
firstop.setAttribute("hidden","");
firstop.setAttribute("disabled","");
<select name="field2" id="id_18_gen" >
<option value="{1,2}" >Please choose...</option>
<option value="1" >correct</option>
<option value="2" >false</option>
</select>
Ответ №3:
e.setAttribute(‘атрибут’, значение). Чтобы выбрать конкретную опцию, это e.options[index] или e.options.item(index) (то же самое) или по ширине идентификатора e.options.namedItem(id).setAttribute(….)
Чтобы найти конкретный параметр по значению:
e.options.map((option, index) => {
if (option.value == '{1,2}')
option.setAttribute('hidden', true);
})
или лучше с queryselector:
document.querySelector('#id_18_gen option[value={1,2}]')
Ответ №4:
В jQuery вы можете использовать:
$('#id_18_gen option').first().attr({"hidden":"","disabled":""});
$(function() {
const firstOpt = $('#id_18_gen option').first();
console.log( "Before:", firstOpt[0] );
firstOpt.attr({"hidden":"","disabled":""});
console.log( "After:", firstOpt[0] );
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="field2" id="id_18_gen" >
<option value="{1,2}" >Please choose...</option>
<option value="1" >correct</option>
<option value="2" >false</option>
</select>