Ошибка JS asp.net

#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-210

5. @Брэд, я опробовал оба решения, и я все еще получаю ту же ошибку :/

Ответ №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) вместо этого — и я предполагаю, что это не сработает в любом случае =/