Javascript помочь с DOM .. не обновляется? - PullRequest
0 голосов
/ 17 июня 2011

У меня есть несколько ссылок, стилизованных под это:

<div id="friend_names_list">

<div class="dropdown_input"><span>1</span><span>Name1</span></div>
<div class="dropdown_input"><span>0</span><span>Name2</span></div>
<div class="dropdown_input"><span>0</span><span>Name3</span></div>
<div class="dropdown_input"><span>0</span><span>Name4</span></div>


</div>

С помощью следующей функции я хочу выбрать следующую ссылку после выбранной. Обозначается 1 в промежутке:

 function select_friendinbox()
{
    var arr_names=document.getElementById("friend_names_list").getElementsByClassName("dropdown_input");
    var match=0;

    for(var a=0;a<arr_names.length;a++)
    {
        if(arr_names[a].childNodes[0].innerHTML=='1')
{
arr_names[a].childNodes[0].innerHTML='0';
match=a;
}

}


    arr_names[match+1].childNodes[0].innerHTML='1'; 

}

Однако, если я вызову функцию. Он меняется так, что выбрано второе имя:

<div id="friend_names_list">

<div class="dropdown_input"><span>0</span><span>Name1</span></div>
<div class="dropdown_input"><span>1</span><span>Name2</span></div>
<div class="dropdown_input"><span>0</span><span>Name3</span></div>
<div class="dropdown_input"><span>0</span><span>Name4</span></div>


</div>

Но когда я снова вызываю функцию, он говорит, что match равен 0, и выбирает второе имя, а не третье. Я не знаю, почему это происходит, может быть, это моя логика кодирования или что-то в этом роде;) Похоже, что javascript не возвращает обновленный dom..и вот почему match остается в 0 ?? Есть идеи как это исправить?

Ответы [ 2 ]

0 голосов
/ 17 июня 2011

Я протестировал ваш код здесь, и он сработал (внёс небольшое изменение, чтобы он тоже зацикливался, потому что выдал ошибку)

http://jsfiddle.net/dBhBu/

0 голосов
/ 17 июня 2011

Я почти уверен, что вы должны взять var match = 0 вне функции select_friendinbox().В противном случае каждый раз, когда вы вызываете функцию, она возвращается к 0.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...