#javascript #jquery #asp.net
#javascript #jquery #asp.net
Вопрос:
Я пытаюсь изменить
document.all["SearchCritera" id "$ddlFilter"].selectedIndex = 0;
Для
$('SearchCriteria' id '$ddlFilter')[0].selectedIndex = 0;
но я получаю ошибку js (не удается установить значение свойства ‘SelectedIndex’: объект равен нулю или не определен). Есть идеи, как это исправить? Я в полной растерянности, спасибо за вашу помощь!
Ответ №1:
Попробуйте использовать .get()
метод jQuery. Кроме того, похоже, что вы напрямую ссылаетесь на идентификатор элемента, поэтому убедитесь, что вы добавляете в свой селектор префикс #
.
$('#SearchCriteria' id '$ddlFilter').get(0).selectedIndex = 0;
Хотя это, по-видимому, не стоит затраченных усилий, поскольку document.getElementById
существует для этой цели:
document.getElementById('SearchCriteria' id '$ddlFilter').selectedIndex = 0;
Кроме того, я предполагаю, что вы используете jQuery, но если это не так, дайте мне знать, и я исправлю.
Комментарии:
1. Я спрашиваю это только для того, чтобы научиться. Чем они
$('#SearchCriteria' id '$ddlFilter').get(0)
и$('#SearchCriteria' id '$ddlFilter')[0]
отличаются?2. @Floyd Pink: Вероятно, в данном случае они ничем не отличаются, поскольку реальной проблемой было отсутствие
#
. Но.get()
просто захватывает объект DOM, а не оболочку jQuery (или так я понимаю).3. @FloydPink: Нет проблем. И в случае любопытства, посмотрите этот jsFiddle . 😉
4. @Brad,
get
метод при использовании параметра приводит к использованию[]
обозначения .. github.com/jquery/jquery/blob/master/src/core.js#L202-2105. @Брэд, я опробовал оба решения, и я все еще получаю ту же ошибку :/
Ответ №2:
Это сработало
$('#' 'SearchCriteria' id '_ddlFilter')[0].selectedIndex = 0;
Ответ №3:
Что ж
1) Однако у нас нет способа сообщить вам, правильный ли ваш селектор, потому что вы не опубликовали свой HTML-код… 2) Вместо использования .selectedIndex = 0
попробуйте использовать .attr("selectedIndex") = 0
Комментарии:
1. Я не буду голосовать против, но знаете ли вы: а) как работает
.attr()
метод и б) что такое свойство SelectedIndex ?2. @Brad — Я просматривал код на этой странице blog.coldfusionpowered.com/?p=110
3. При вызове .
attr('name')
вы всего лишь извлекаете значение. Чтобы задать значение, вы должны поместить его значение в вызов метода в качестве второго параметра. Но все тривиально, поскольку SelectedIndex является свойством DOM, а не атрибутом HTML.4. @Брэд, ты прав. Я должен был вызвать .attr («SelectedIndex», 0) вместо этого — и я предполагаю, что это не сработает в любом случае =/