Вы сделали опечатку
Вместо (this).val()
вы должны использовать $(this).val()
в вашем операторе if.this
относится к HTMLObject, $(this)
относится к объекту jQuery.Поскольку метод .val()
является частью инфраструктуры jQuery, его нельзя использовать в HTMLObjects.Но я уверен, что вы знали это, потому что это очень похоже на маленькую опечатку.
Это должно работать:
$(document).ready(function(){
var num = 3;
$("div#selection select.select option").each(function(){
if($(this).val()==num){ // EDITED THIS LINE
$(this).attr("selected","selected");
}
});
});
Редактировать
Вы можете оптимизировать свой цикл, добавив return false;
(break;
для ванильных циклов), когда вы нашли свой элемент, чтобы он не продолжал циклировать элементы, пока мы уже «закончили».
Тем не менее, вы должны посмотреть на ответ Никола Пелучетти на более эффективный и понятный код.