Конфликт между document.getElementById()
Здравствуйте уважаемые форумчане =)
Помогите пожалуйста ;) Есть код:
var tmp_linkpricelow = Array;
var linklabel = Array;
var n = 1;
tmp_linkpricelow[n] = document.getElementById("linkpricelow" + n);
tmp_linkpricelow[n].placeholder = (localStorage["linkpricelow" + n] == ('' || 0)) ? '' : localStorage["linkpricelow" + n];
console.log("1.pricelowholder =" + tmp_linkpricelow[n].placeholder);
linklabel[n] = document.getElementById("linklabel" + n);
linklabel[n].innerHTML = (localStorage["linkname" + n] == '') ? 'nope' : "<a href=\"" + localStorage["link" + n] + "\"target=\"_blank\">" + localStorage["linkname" + n] + "</a>";
console.log("2.pricelowholder =" + tmp_linkpricelow[n].placeholder);
Есть html:
<div class="form__row form__row_msg-list">
<div class="form__row__label label_yes">
<label for="interface" id="linklabel1">link 1</label>
</div>
<div class="form__row__widget">
<div>
<input class="info" value="" placeholder="steam link" id="link1" size="45">
</div>
</div>
<div><input class="info" value="" id="linkpricelow1" size="1"></div>
</div>
localStorage - переменная расширения в Google Chrome Вопрос: почему в консоль вывод правильный работает только если отключить строку: linklabel[n] = document.getElementById("linklabel" + n); Кто объяснит такое странное явление? Спасибо заранее |
aH6y,
Цитата:
т.е во многих браузерах по умолчанию: linklabel == document.getElementById("linklabel") Поэтому лучше не создавать подобные идентичные глобальные переменные а работать с ними locale , в замыкающей функции
<div id="aaa">111222</div>
<script type="text/javascript">
alert(aaa == document.getElementById("aaa"))
alert(aaa.innerHTML)
</script>
<script type="text/javascript">
(function(){
var aaa =1;
alert(aaa == document.getElementById("aaa"))
alert(aaa.innerHTML)
}())
</script>
|
А если нужно вынести эту переменную в другую функцию, то как?
Создать глобальную переменную и в нее записать содержимое linklabel? |
aH6y,
Напишите иное имя - и проблем нет My_linklabel или создать глобальный объект и плодите в нём сколько пожелаете My = {} My.linklabel=[]; My.blaBlaBla=... My.tryams = ... |
Проблема в неправильном объявлении переменных. Вместо
var tmp_linkpricelow = Array; var linklabel = Array; Нужно писать так: var tmp_linkpricelow = new Array(); var linklabel = new Array(); Всем спасибо ;) |
не за что
var tmp_linkpricelow, linklabel = []; |
| Часовой пояс GMT +3, время: 13:06. |