проблема с javascript getElementById, который скрыт - PullRequest
1 голос
/ 30 марта 2011

Я пытаюсь создать букмарклет, который будет возвращать идентификатор пользователя для сайта, на который я зарегистрирован.При входе на веб-сайт появляется следующий фрагмент кода:

<input id="memberID" name="00V85345345343ugFFC" type="hidden" value="3959721"/>

Это JavaScript, который я использую, но он ничего не делает.Я что-то здесь не так делаю?

javascript:alert("Your member ID is\n"+document.getElementById("memberID")[0].value);

Ответы [ 3 ]

4 голосов
/ 30 марта 2011

document.getElementById возвращает HTMLElement или null, если не найдено ни одного элемента, соответствующего этому идентификатору.

Поскольку идентификаторы элементов должны быть уникальными, возвращать массив не имеет смысла; должен соответствовать максимум один элемент.

javascript:alert("Your member ID is\n"+document.getElementById("memberID").value);

document.getElementsByTagName однако, например (обратите внимание на множественное число элементов, а не элемент), возвращает массив элементов; так как имеет смысл иметь более одного элемента одного тега на странице.

var divElements = document.getElementsByTagName("div");
if (divElements.length) {
    var firstElement = divElements[0];
};
2 голосов
/ 30 марта 2011

getElementById возвращает один элемент, а не массив элементов.

Итак, это:

getElementById("memberID")[0].value

Должно стать просто:

getElementById("memberID").value
0 голосов
/ 30 марта 2011

Маби, это поможет abit устранить эту ошибку:

http://p -xr.com / JQuery-как-getelementbyid-в-1-линия-оф-кода /

...