Проблема с обращением к value переменной

177
15 февраля 2018, 16:50

Прошу помочь в следующей проблеме: Имеем select с набором option`ов. Стоит задача в выборе option, у которого value равняется переменной pack, но при этом следующая конструкция не работает:

var pack = "test"; 
$("#pack [value=pack]").attr("selected", "selected");

Хотя, если не обращаться к переменной, а статично задать value - все работает, пример:

$("#pack [value='test']").attr("selected", "selected");

Вопрос: в чем ошибка в первой конструкции, что не так? Заранее спасибо!

Answer 1

По идее так тоже должно работать. Попробуйте сложить $('#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>

Answer 2

мой совет - научись работать со строками строки в JS) правильный пример:

var pack = "test"; 
$("#pack [value='"+pack+"']").attr("selected", "selected");
Answer 3

Во-втором варианте, когда ты проверяешь данный элемент на наличие

$("#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");
  }
READ ALSO
распарсить строку в JSON

распарсить строку в JSON

К примеру есть строка вида

159
Анимация для Inner HTML (Anime.js или альтернативы)

Анимация для Inner HTML (Anime.js или альтернативы)

Мне нужно сделать калькулятор для рассчёта стоимости видеороликаЕсть такой код:

127
PHP TZD формат даты [QIWI API]

PHP TZD формат даты [QIWI API]

Здравствуйте, нужно получить историю платежей Киви, при помощи APIСделано все, кроме сортировки по времени, здесь я не могу понять

181