2013-12-20 3 views
0

getElementById не возвращает никакого значения. Моя цель: у меня есть текстовое содержимое и при действии, которое я должен заменить значением текста. Я использую ярлыки для отображения.
Есть ли лучший способ отображения такого измененного текста, я не хочу использовать текстовое поле.getElementBy ID не возвращается для метки метки

<% for(int i=0; i<lines.length;i++) { 
    if(lines[i].contains(" ")) { %> 
    <label id='idkey<%=i%>' name='key1<%=i%>'>ABC</label> 
          <% 
    } 
} %> 


for(j=0; j<len; j++){ 
var lblElement = document.getElementById('idkey'+j).innerText="ddd"; 
    alert(lblElement); 
} 
+1

Если он не возвращает значение, то нет ни одного элемента на странице с этим " Я бы". – Pointy

+0

Какой браузер вы используете? «Не возвращая никакой ценности», вы имеете в виду, что предупреждение пустое? – epascarello

+2

Возможный дубликат ['innerText' работает в IE, но не в Firefox] (http://stackoverflow.com/questions/1359469/innertext-works-in-ie-but-not-in-firefox) – epascarello

ответ

1

Re привет,

Я думаю, что ваш Id неправильно, InnerText работать правильно с http://jsfiddle.net/mPc2E/ Be carreful, InnerText возвращает значение Вас новый текст, а не измененный тег.

document.getElementById('lab').innerText = " toto" 
0

Попробуйте

document.getElementById('idkey'+j).innerHTML = 'ddd'; 

Демо here

+0

innerHTML предназначен для установки нового содержимого html с тегом, предпочитаем использовать innerText, чтобы установить простой текст в теге :) – kevpoccs

0

Линия var lblElement = document.getElementById('idkey'+j).innerText="ddd"; не устанавливает lblElement равным элементу - а равно текст "ddd". Попробуйте следующие вместо:

for(j=0; j<len; j++){ 
    var lblElement = document.getElementById('idkey'+j); 
    lblElement.innerText="ddd"; 
    alert(lblElement); 
} 

Примечание: Это предполагает, что переменная len содержит правильное значение

Смежные вопросы