Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2013, 04:11
Новичок на форуме
Отправить личное сообщение для aH6y Посмотреть профиль Найти все сообщения от aH6y
 
Регистрация: 12.07.2010
Сообщений: 9

Конфликт между 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);

Кто объяснит такое странное явление?
Спасибо заранее
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2013, 05:06
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

aH6y,
Сообщение от aH6y
linklabel[n] = document.getElementById("linklabel" + n);
По идее id элементов уже и есть глобальная переменная
т.е во многих браузерах по умолчанию:

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>

Последний раз редактировалось Deff, 15.11.2013 в 05:18.
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2013, 10:34
Новичок на форуме
Отправить личное сообщение для aH6y Посмотреть профиль Найти все сообщения от aH6y
 
Регистрация: 12.07.2010
Сообщений: 9

А если нужно вынести эту переменную в другую функцию, то как?

Создать глобальную переменную и в нее записать содержимое linklabel?
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2013, 10:59
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

aH6y,
Напишите иное имя - и проблем нет

My_linklabel
или создать глобальный объект и плодите в нём сколько пожелаете
My = {}
My.linklabel=[];
My.blaBlaBla=...
My.tryams = ...

Последний раз редактировалось Deff, 15.11.2013 в 11:00. Причина: м
Ответить с цитированием
  #5 (permalink)  
Старый 15.11.2013, 13:39
Новичок на форуме
Отправить личное сообщение для aH6y Посмотреть профиль Найти все сообщения от aH6y
 
Регистрация: 12.07.2010
Сообщений: 9

Проблема в неправильном объявлении переменных. Вместо
var tmp_linkpricelow = Array;
var linklabel = Array;

Нужно писать так:
var tmp_linkpricelow = new Array();
var linklabel = new Array();

Всем спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 15.11.2013, 16:46
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

не за что
var tmp_linkpricelow, linklabel = [];
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конфликт двух скриптов veatone jQuery 2 24.05.2013 21:02
Конфликт между скриптами serg_29rus Общие вопросы Javascript 10 10.03.2013 13:07
Конфликт между двумя скриптами karencho777 Общие вопросы Javascript 3 03.03.2013 12:51
JQuery конфликт между версиями zurasan Элементы интерфейса 2 19.12.2012 15:12
Конфликт Ajax и jQuery MadChild Javascript под браузер 2 22.10.2012 18:30