Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 1
Регистрация: 03.06.2009
Сообщений: 16

Взять значение из span

05.12.2013, 14:15. Показов 2947. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть следующий код:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<span id="passp1"></span>
<div id="myimg" class="k"></div>
 
<script>
function updateData() {
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","test.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
 
document.getElementById("passp1").innerHTML=$(xmlDoc).find('#1-222-1-25-0').find('Value').text()
 
}
</script>
 
<script language="javascript">
          var y =  parseFloat(document.getElementById("passp1").innerHTML);
          var i = document.getElementById('myimg');
          img1 = new Image (20,20);
 
     switch (eval(y)){
     case 1: img1.src="green.gif";break;
     case 2: img1.src="red.gif";break;
     case 3: img1.src="red.gif";
     }
 
       i.appendChild(img1);
          </script>
После выполения кода (парсится xml файл) браузер отобразил цифру 1, отображение происходит через <span id="passp1"></span> . Вопрос: как правильно теперь взять значение из <span id="passp1"></span> , чтоб в скрипте переменная y взяла значение 1. Пытаюсь так var y = parseFloat(document.getElementById("pass p1").innerHTML) не срабатывает. Или же возможно либо сделать так, чтоб после парсинга xml файла между тегами span была цифра 1, т.е. <span id="passp1">1</span>. Помогите исправить код.
P.S. Цифры могут быть разные после парсинга xml (1,2 или 3)
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2013, 14:15
Ответы с готовыми решениями:

Если текстовое поле пустое, должен показываться span после нажатия на кнопку, если нет, то span не появляется
не работает следующий код. Если текстовое поле пустое, должен показываться span после нажатия на кнопку, если нет, то span не появляется: ...

Загрузить в <span id="CSpan"></span> html код
На сайте есть блок &lt;span id=&quot;CSpan&quot;&gt;&lt;/span&gt; и есть скрипт function getCInfo() { ...

Взять html - содержимое span внутри span
Здравствуйте. Есть такая конструкция. &lt;tr&gt; &lt;span&gt;тут какой-то код&lt;span class=&quot;k&quot;&gt;тут какой-то код&lt;/span&gt;&lt;/span&gt; ...

2
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
05.12.2013, 19:28
raiden, вам следует осознать простую вещь - исполнение XMLHttpRequest.open () и XMLHttpRequest.send () прерывает единый поток исполнения javascript-кода

страница ваша как бы совершает "телефонный звонок" по номеру "test.xml" и ждёт, покуда там возьмут трубку и ответят
а ответить там могут не сразу - или линия занята, или абонент трубку ищет...

поэтому после исполнения вашей строки #15: xmlhttp.send ();
переменная xmlDoc в строке #16: xmlDoc = xmlhttp.responseXML; может просто не успеть получить своего значения - "абонент ещё не ответил"

именно поэтому перед отправкой запроса (между open () и send ()) обычно прописывают "инструкцию" для случая "ответа абонента", а именно:
xmlhttp.open("GET","test.xml",false);
xmlhttp.onreadystatechange = function ()
{и вот-тут-то, ПОСЛЕ ОТВЕТА АБОНЕНТА, можно присваивать xmlDoc=xmlhttp.responseXML; и работать далее}

xmlhttp.send();


стандартно в назначаемой функции проверяют статус ответа, если он == 4, то, значит, "абонент снял трубку и ответил"
разумеется, и весь ваш второй скриптовой блок (строки ##24-34) может и должен исполняться только внутри этой самой функции - т.е. только ПОСЛЕ ОТВЕТА АБОНЕНТА
1
0 / 0 / 1
Регистрация: 03.06.2009
Сообщений: 16
06.12.2013, 12:47  [ТС]
Лучший ответ Сообщение было отмечено raiden как решение

Решение

Переделал код, но возник другой вопрос: работает в браузерах хром и фаерфокс, а в интернет эксплорере (8,9 ) и опере не работает, где же ошибка в коде? или я не так переделал код?

HTML5
1
2
3
4
5
<span id="passp1"></span>
<span id="passp2"></span>
<span id="passp3"></span>
<div id="myimg" class="k"></div>
<div id="myimg1" class="z"></div>
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<script>
function updateData() {
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","../test.xml",false);
xmlhttp.onreadystatechange = function (){
xmlDoc=xmlhttp.responseXML;
 
document.getElementById("myimg").innerHTML=$(xmlDoc).find('#1-222-1-25-0').find('Status').text()
document.getElementById("myimg1").innerHTML=$(xmlDoc).find('#1-222-1-26-0').find('Status').text()
document.getElementById("passp3").innerHTML=$(xmlDoc).find('#1-222-1-27-0').find('Status').text()
 
     var y =  parseFloat(document.getElementById("myimg").innerHTML);
          var i = document.getElementById('myimg');
          img1 = new Image (20,20);
 
     switch (y){
     case 1: img1.src="../green.gif";break;
     case 2: img1.src="../red.gif";break;
     case 3: img1.src="../red.gif";
     }
 
       i.appendChild(img1);
 
       var z =  parseFloat(document.getElementById("myimg1").innerHTML);
          var i = document.getElementById('myimg1');
          img2 = new Image (20,20);
 
     switch (z){
     case 1: img2.src="../green.gif";break;
     case 2: img2.src="../red.gif";break;
     case 3: img2.src="../red.gif";
     }
 
       i.appendChild(img2);
 
 
}
xmlhttp.send();
 
 
 
 
 
}
</script>
 
 
    <script>
        $(document).ready(function(){
            updateData();
            setInterval('updateData()',5000);
        });
    </script>
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2013, 12:47
Помогаю со студенческими работами здесь

Как сделать $(this) и уточнить что внутри этого this взять, например span
То есть надо у выбранного в Jquery элемента выбрать дочерний элемент &lt;span&gt;. Как это сделать?

Скрыть span при нажатии вне этого span js
Подскажите пожалуйста, есть код: $(document).ready( function() { $('#valuta').keyup(function(){ ...

Получить значение span'a
Всем привет, столкнулся с такой проблемой: не могу получить значение внутри span'a, пробовал так: &lt;div id=&quot;d&quot;&gt; ...

Получить значение из span
Я получаю значение span из Spring: &lt;span id=&quot;filterFirst&quot; th:text=&quot;${first}&quot;&gt;&lt;/span&gt; Мне нужно получить это значение в JS Все мои...

Как получить значение span
Прилетает на UI такое значение span: &lt;span th:text=&quot;${fromController.number}&quot;/&gt; в number прилетает double из БД. таких спанов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор элементов справочника 1С
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru