Я думаю, что вы ищете getElementById, если ищете тег HTML, или в вашем случае здесь просто window.Conf.page.userId
, чтобы получить значение.
window.pageConf = window.pageConf || {};
$.extend(pageConf, {"newNotifications":false,"userId":"125"});
function onTestClick() {
var a = document.getElementsByName('userId');
document.getElementById('myLabelId').innerText = a.length;
// Result: 0
document.getElementById('myLabelId').innerText += " " + window.pageConf.userId;
// Result: 125
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button onclick="onTestClick()">Test</button><br/><br/>
<label id="myLabelId"></label>
Сказав это, давайте поговорим об «имени» в теге.
getElementsByName возвращает массив, потому что Name не уникален для элемента. Имя используется в основном для двух вещей:
- Для обратной передачи: при отправке формы значение ввода публикуется с «именем» в теге. Например:
Comments: <input id='myUniqueLocalId' name='comments' />
Чтобы сгруппировать переключатели или флажки вместе. Маленький пример:
function onTestClick() {
var q1 = document.getElementsByName('q1');
document.getElementById('myLabelId').innerText += " " + q1.length + " " + q1[0].value + " " + q1[1].value;
// Result: 2 Yes No
}
Question 1:
<input type="radio" id="Yes" name="q1" value="Yes" checked>
<label for="Yes">Yes</label><be>
<input type="radio" id="No" name="q1" value="No">
<label for="No">No</label><br>
Question 2:
<input type="radio" id="Yes" name="q2" value="Yes">
<label for="Yes">Yes</label><be>
<input type="radio" id="No" name="q2" value="No" checked>
<label for="No">No</label><br>
<button onclick="onTestClick()">Test</button><br/><br/>
<label id="myLabelId"></label>