2015-11-14 5 views
3

Я использую код, который требует от меня, чтобы написать следующее:Есть ли простой способ сделать document.getElementById упрощенным?

document.getElementById("id").innerHTML //+ whatever else 

Этот код привыкает вероятно 20-30 раз в моей JavaScript только с изменением атрибута ID. Есть ли способ написать очень маленькую функцию, которая заменяет всю строку текста более упрощенной версией? Что-то вроде:

El("id") 

Я написал, вероятно, 2-3 различные функции, чтобы попытаться просто это сделать, но никто из них не работал.

var dom = { 
    elem = function (id){ 
     return document.getElementById(id).innerHTML; 
    } 
} 

dom.elem(testid) //this has not worked 
+0

Объект dom имеет неправильный синтаксис. Ключ элева должен сопровождаться двоеточием, а не знаком равенства. – dcochran

+0

Dare Я предлагаю jQuery ..? – Culme

+0

В чем смысл вашей обертки? Думая об этом, он полностью избыточен. –

ответ

3

Попробуйте это:

function El(id) { 
    return document.getElementById(id).innerHTML; 
} 

Затем вы можете использовать:

El("elementId"); //will return document.getElementById("elementId").innerHTML 
+0

Я пробовал этот код, но он просто говорит мне, что атрибут ID, который я вставлял, не определен. Я думаю, причина в том, что атрибут ID должен быть строкой, а значение, которое я вводил, не является строкой. Если я вручную сделаю строку, я получаю сообщение об ошибке, говорящее, что все это Null. – Shawn

+0

Что вы вводите? (какой тип данных и значение?) –

+0

Я вкладываю (здоровье), а не («здоровье»). Если я поставлю первый, он говорит, что он не определен. Если я поставлю второй, он говорит, что весь document.getElementById имеет значение Null. – Shawn

2

Вы бы скорее хотели бы вернуть только объект, чтобы сделать заявление "document.getElementById" короче. Тогда вы могли бы использовать "OBJ (ID)" и использовать его везде, не только для метода innerHTML:

function obj(id){ 
    return document.getElementById(id); 
} 

использования, то для любых методов JavaScript, как:

obj("myElementId").innerHTML = "My new Text"; 
obj("myElementId").classList.add("mystyle"); 
obj("myElementId").click(); 
obj("myElementId").insertBefore(); 

где:

<div id="myElementId"></div> 
Смежные вопросы