Прошу помочь в следующей проблеме: Имеем select с набором option`ов. Стоит задача в выборе option, у которого value равняется переменной pack, но при этом следующая конструкция не работает:
var pack = "test";
$("#pack [value=pack]").attr("selected", "selected");
Хотя, если не обращаться к переменной, а статично задать value - все работает, пример:
$("#pack [value='test']").attr("selected", "selected");
Вопрос: в чем ошибка в первой конструкции, что не так? Заранее спасибо!
По идее так тоже должно работать. Попробуйте сложить $('#pack [value=' + pack + ']').
$(document).ready(function() {
var pack = 'i';
$('d' + pack + 'v').css({'background': 'red'});
});
div {
width: 150px;
height: 50px;
background: #ddd;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="div"></div>
мой совет - научись работать со строками строки в JS) правильный пример:
var pack = "test";
$("#pack [value='"+pack+"']").attr("selected", "selected");
Во-втором варианте, когда ты проверяешь данный элемент на наличие
$("#pack [value='test']")
Происходит выборка. Ты говоришь парсеру, что бы он элементу с id pack у которого value='test' сделал
атрибут selected="selected"
$("#pack [value='test']").attr("selected", "selected");
По этому и работает...
А в первом случае у тебя идет сравнение, что не правильно А должна быть такая конструкция на сравнение
var pack = "test";
if ($("#pack").val() == pack){
$("#pack").attr("selected", "selected");
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости