Здесь есть несколько возможных проблем, попробуйте это:
$.post(
"test.php",
{
action: "test"
},
function(data) {
//data received is in the format of "2,3"
var splitText = data.split(",");
var select = $('[id="sbox[]"]').get(0);
$.each(splitText, function(k,v) {
$.each(select.options, function(i, option) {
if(option.value == v)
option.selected = true;
else
option.selected = false;
});
});
}
);
Первое, что селектор #id
работает хорошо, когда id
является буквенно-цифровым (-
и _
также допускаются). Поэтому, чтобы использовать подстроку []
в идентификаторе, вы бы хотели найти ее с помощью селектора атрибутов. В качестве альтернативы, если это единственный идентификатор, начинающийся с sbox
, вы можете попробовать это: $('[id^=sbox]')
.
Еще один элемент, который необходимо исправить - это установка атрибута selected
на <option>
. Я не уверен, что он работает так, как вы ожидали, но обращение к объекту Option
DOM, как показано выше, должно работать нормально.
Последним является незначительное исправление - вы находите элемент <select>
на каждой итерации цикла, вероятно, вы захотите сделать это один раз перед началом цикла.
Надеюсь, это поможет.