Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   find table или другой способ забрать переменные из таблицы (https://javascript.ru/forum/events/61873-find-table-ili-drugojj-sposob-zabrat-peremennye-iz-tablicy.html)

arahmanov 13.03.2016 01:16

find table или другой способ забрать переменные из таблицы
 
Доброй ночи!

Есть строковая переменная содержащийся
var  table =" <table><tr><td><td></td></td><td></td><td>ФИО</td>Иван Иванович<td></td><td></td></tr><table>";


Подскажите как за получить значения следующего td после td содержащего текст ФИО.

Спасибо!

рони 13.03.2016 01:31

arahmanov,
неправильная переменная ... может исправите?

arahmanov 13.03.2016 01:35

Цитата:

Сообщение от рони (Сообщение 410823)
arahmanov,
неправильная переменная ... может исправите?

Это я для примера ...

фактически так
clietn =  $(html).find('#pnlClientDetails').html();

в эту переменную попадает наша таблица

рони 13.03.2016 01:38

arahmanov,
то есть слабо написать var table так чтобы после td c ФИО было td c Иван Иванович?

arahmanov 13.03.2016 01:49

Цитата:

Сообщение от рони (Сообщение 410825)
arahmanov,
то есть слабо написать var table так чтобы после td c ФИО было td c Иван Иванович?

Извини Рони ,
не совсем понял что ты имеешь виду.

У меня есть переменная
var clietn =  $(html).find('#pnlClientDetails').html();

которая содержит внутри себя HTML код большой таблицы.
в который среди множества есть тег <td> с текстом Ф.И.О а следующий тег после него , текст которого мне нужно получить.

p/s Я для примера написал
var  table =" <table><tr><td><td></td></td><td></td><td>ФИО</td>Иван Иванович<td></td><td></td></tr><table>";

Decode 13.03.2016 01:56

arahmanov, как вариант:
var str = '... <td>ФИО</td><td>Иван Иванович</td> ...';

alert( str.match(/<td>ФИО<\/td><td>([\s\S]+)<\/td>/i)[1] );

arahmanov 13.03.2016 02:07

Цитата:

Сообщение от Decode (Сообщение 410827)
arahmanov, как вариант:
var str = '... <td>ФИО</td><td>Иван Иванович</td> ...';

alert( str.match(/<td>ФИО<\/td><td>([\s\S]+)<\/td>/i)[1] );


Супер. Спасибо!
У меня не работает наверное из-за того что теги с классами и стилями ?

<td class="CDataHeader" style="width:100px;">Ф.И.О</td>
следующий такой 
<td class="CDataContent" style="white-space: nowrap;">Иван Иванович</td>


мой вариант не рабочий
var clietn =  $(html).find('#pnlClientDetails').html(); 
alert( clietn.match(/<td>Ф.И.О<\/td><td>([\s\S]+)<\/td>/i)[1] );

Decode 13.03.2016 02:19

arahmanov, а так?
var str = '<td class="CDataHeader" style="width:100px;">Ф.И.О</td><td class="CDataContent" style="white-space: nowrap;">Иван Иванович</td>';
alert( str.match(/<td\s*(?:[^>])*>Ф.И.О<\/td><td\s*(?:[^>])*>([\s\S]*)<\/td>/i)[1] );

рони 13.03.2016 02:53

Цитата:

Сообщение от arahmanov
не совсем понял что ты имеешь виду.

теги td неправильные в примере, даже клиент и тот не клиент
:(
var client = $('#pnlClientDetails td:contains("Ф.И.О")+').text();

рони 13.03.2016 02:56

arahmanov,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
  <script>
   $(function(){
var client = $('#pnlClientDetails td:contains("Ф.И.О")+').text();
alert(client);
   })
  </script>
</head>

<body>
    <table id="pnlClientDetails"><tr>
<td class="CDataHeader" style="width:100px;">Ф.И.О</td>
<td class="CDataContent" style="white-space: nowrap;">Иван Иванович</td>
</tr></table>
</body>

</html>


Часовой пояс GMT +3, время: 01:26.