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

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

05.12.2013, 14:15. Показов 2931. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru