Типовая версия ответа @justin, совместимая с ES6, с использованием символов для предотвращения любого столкновения ключей и добавления в глобальный Object.id для удобства. Просто скопируйте вставить код ниже или поместите его в файл ObjecId.ts, который вы импортируете.
(enableObjectID)();
const uniqueId: symbol = Symbol('The unique id of an object');
function enableObjectID(): void {
if (typeof Object['id'] !== 'undefined') {
return;
}
let id: number = 0;
Object['id'] = (object: any) => {
const hasUniqueId: boolean = !!object[uniqueId];
if (!hasUniqueId) {
object[uniqueId] = ++id;
}
return object[uniqueId];
};
}
Использование в вашем ts-коде:
(<any>Object).id(yourObject);
Ответ: Нет.
Хотя вы могли бы написать некоторый javascript, который бы устанавливал атрибут selected
для option
на основе параметра в теге select
, но вы затем изменили бы DOM
, что приведет к вашему примеру # 1. [ 116]
Так что нет, в HTML5 нет способа получить DOM
, как вы просили.
Это не свойство по умолчанию тега select
.
Чтобы понять это, вы должны сделать свою собственную функцию в javascript.
Вы также должны включить Jquery
для этого.
Это абсолютно недостижимо в JavaScript. Вы можете добавить data
атрибутов к элементам.
<select id="cars" data-selected="audi">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="vw">VW</option>
<option value="audi">Audi</option>
</select>
В javascript вы можете прочитать значение и установить его для опции.
var selected = $("#cars").attr("data-id");
$('#cars option[value="'+ selected +'"]').prop('selected', true);
Но в любом случае, зачем тебе это?
<select selected="audi">
никогда бы не сработало ...