Ваш тип определяется следующим образом:
InnerObj
) Вот как это определить:
type InnerObj = {
[key: string]: string | boolean;
btnWrap: boolean;
};
type Obj = {
[key: string]: string | InnerObj;
}
const myObj1: Obj = { key1: 'val1', key2: 'val2', key3: 'val3' };
const myObj2: Obj = { key1: 'val1', key2: { key2: 'val2', btnWrap: true }, key3: 'val3' };
(Из-за некоторого кода платформы я использую, не звонить setAttribute () или вызов removeAttribute () являются трудными.)
Затем я утверждал бы, что платформа кодирует фиксацию потребностей или дамп.
Вы не можете setAttribute для сбрасывания атрибута дизайном. Любое решение Вы нашли включающие внеполосные значения как 'пустой указатель', если бы это, оказалось, работало в каком-либо конкретном браузере, было бы довольно недопустимо согласно Базовому стандарту DOM.
setAttribute () в любом случае лучше всего избегают в браузере контексты HTML (не XML). IE пред8 не знает различия между атрибутом DOM и свойством JavaScript, которое может легко привести ко многим действительно странным проблемам. При попытке установить 'проверенный' как атрибут (который теоретически необходимо сделать путем установки его на "проверенную" строку), не ожидайте, что IE будет сотрудничать.
Полный список булевых атрибутов в HTML 4.01 (и следовательно XHTML 1.0) (с именами свойства, где они отличаются в случае, если):
checked (input type=checkbox/radio)
selected (option)
disabled (input, textarea, button, select, option, optgroup)
readonly (input type=text/password, textarea)
multiple (select,input)
ismap isMap (img, input type=image)
defer (script)
declare (object; never used)
noresize noResize (frame)
nowrap noWrap (td, th; deprecated)
noshade noShade (hr; deprecated)
compact (ul, ol, dl, menu, dir; deprecated)
Попробуйте removeAttribute:
option.removeAttribute("selected");
Править: После чтения Вашего комментария считайте это о setAttribute. Особенно:
Даже при том, что getAttribute () возвращает пустой указатель для пропавших без вести атрибутов, необходимо использовать removeAttribute () вместо elt.setAttribute (attr, пустой указатель) для удаления атрибута.
на ячейках таблицы, например, TD, TH
nowrap
для записи, для изменения атрибутов любят проверенный (на элементах флажка/радио), можно сделать.
myCheckBoxElem.checked = true|false;
или
myCheckBoxElem.checked = !myCheckBoxElem.checked;//toggles to the opposite state
Не точно, что Вы спрашиваете о, но и 'класс' и 'для' атрибутов получает различные имена DOM
element.className
element.htmlFor