Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.
например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.
public Class myClass
{
public int prop1 {get;set;}
}
Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref.prop1 = 1; //This line throws error
}
}
выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.
Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).
public class Demo
{
public void testMethod()
{
myClass ref = null;
ref = new myClass();
ref.prop1 = 1;
}
}
Измените его на это, и он будет работать:
$("#theSelectId").prepend("<option value=''></option>").val('');
Кажется, что IE оценивает только атрибут selected
, когда он впервые встречает select
.
Я не уверен, почему ваш код не работает (возможно, он имеет какое-то отношение к тому, что в IE, selectedIndex
- только для чтения), но это работает в IE:
$("#dropdown").prepend("<option value='' selected='selected'></option>");
$("#dropdown")[0].options[0].selected = true;
Попробуйте:
$("#dropdown").prepend(new Option('', '', true, true));
$("#dropdown option:first").attr("selected", "selected");
Или, если хотите:
$("#dropdown").prepend("<option value=''></option>");
$("#dropdown option:first").attr("selected", "selected");
Использование первой опции происходит немного быстрее. Пустые кавычки означают пустое значение и пустой текст, поэтому заполняйте их по мере необходимости. Вы не нуждаетесь в выбранном атрибуте в preend, который мы добавляем позже. Это как-то связано с интернет-исследователем, не признающим, что он помечен как выбранный, поскольку он только что был создан.