|
|
|
| У меня в <fieldset id=field1> запихиваются один за одним (как в чате) теги <font style="..."> какой-то текст</font><br>. Потом я вытягиваю оттуда верхнюю строку во так:
var params=document.getElementById('field_1').innerText.match(/(.+)/)[0];
В ИЕ и Опере это прокатывает, а в Лисе пишет innerText has no property Как это можно обойти?
Я только вижу, что можно из переменной params удалить все, что находится между открывающими и закрывающими дескрипторами тегов и сами дескрипторы, чтобы оставить только чистый текст, но как это сделать- в голову не приходит. | |
|
|
|
|
|
|
|
для: coloboc66
(01.03.2007 в 11:30)
| | ну во-первых за тег "фонт" тебя надо в угол поставить... а потом - зачем там match? пихай туда не фонты а спаны и они насколько я понимаю будут childNodes для данного элемента. вот и обращайся к элементу массива childNodes[какой нужен] | |
|
|
|
|
|
|
|
для: Padonak
(01.03.2007 в 11:57)
| | вместо innerText использовать innerHtml | |
|
|
|
|
|
|
|
для: AlexSol
(01.03.2007 в 12:05)
| | innerHTML | |
|
|
|
|
|
|
|
для: Lelik
(01.03.2007 в 12:11)
| | innerHTML выдаст мне все содержимое - вместе с дескрипторами, стилями и т.д., а мне нужен только текст. А <font> я брал для того, чтобы можно было управлять его видом по-разному.
Попробовал не через match, а через childNodes:
alert(document.getElementById('field1').childNodes(0).innerText);
получил ошибку document.getElementById('field1').childNodes is not a function...
Кстати и этот форум в лисе работает некорректно. КОнченая лиса...
А что: <span> для <fildset> - childNode, а <font> - нет?! Это так??? | |
|
|
|
|
|
|
|
для: coloboc66
(01.03.2007 в 12:42)
| |
alert(document.getElementById('field1').childNodes[1].innerHTML);
|
1. childNodes - не функция =)
2. Почему childNodes[1] ?
Потому что наверняка у вас между <fieldset id="field1"> и <span> есть хотя бы один символ (например перевод строки).
Если же элементы идут без разрыва (<fieldset id="field1"><span>...) то брать childNodes[0].
3. Тэг <font> нежелателен к применению (читайте спецификацию HTML 4.01)
4. Свойства innerText не существует (читайте спецификацию DOM)
Если у вас текст в span, то при обращении к childNodes[1].innerHTML вы не получите ни стилей, ни дескрипторов тэга (если конечно внутри <span> ничего больше нет). | |
|
|
|
|
|
|
|
для: mesos
(01.03.2007 в 14:11)
| | > mesos походу лучше ему пример сделать чем объяснять :-) спецификацию не уважает ДОМ не знает ФФ ему не такой :-)) вот народ блин... | |
|
|
|
|
|
|
|
для: Padonak
(01.03.2007 в 20:03)
| | 2. Почему childNodes[1] ?
Потому что наверняка у вас между <fieldset id="field1"> и <span> есть хотя бы один символ (например перевод строки).
Если же элементы идут без разрыва (<fieldset id="field1"><span>...) то брать childNodes[0].
Так вот для Лисы и ИЕ у меня получается childNodes[1] а для Оперы - childNodes[0]
to Padonak: что вы тут жизни учите? DOM не знает никто, включая разработчиков броузеров, если разные броузеры интерпретируют узлы по-разному.
Учитель, блин... | |
|
|
|
|
|
|
|
для: coloboc66
(02.03.2007 в 11:47)
| | Да ладно вам ругаться-то! =)
Кстати в Opera 9.01 все правильно (childNodes[1]), так что единственный выход вижу в определении браузера и версии. | |
|
|
|
|
|
|
|
для: mesos
(02.03.2007 в 12:21)
| | Да вот и я к этому пришел. | |
|
|
|
|
|
|
|
для: coloboc66
(02.03.2007 в 16:25)
| | Не морочте голову, все будет работать есле проверять nodeType
эта функция работает для всех элементов кроме body:
function Child()
{
var w=arguments[0].childNodes, NOD=new Array;
for(var i=0;i<w.length;i++)
{if(w[i].nodeType==1)NOD[NOD.length]=w[i];}
if(arguments[1]=='length') return NOD.length;
else if(arguments[1]<NOD.length)
return NOD[arguments[1]];
else return false;}
|
юзать так: Child(Обьект, НомерУзла);
вернет Обьект...
Кстате может кто подсажет почему body.nodeType для всех элементов возвращает 1 | |
|
|
|
|
|
|
|
для: fear.86
(02.03.2007 в 16:43)
| | 2 colob ну прости если затронул нежные места твоей души :-)) пусть так и будет как ты говоришь: никто не знает ДОМ все пользуются фонтами (желательно в верхнем регистре) все браузеры кривые и т.д. я ни в коем случае не претендовал на твои лавры ты что! упаси меня и сохрани тебя учить тем более что я сантехником работаю (заметь даю информацию к размышлению :-)))) и мне недоумку лучше молча читать форум чем и займусь прямо сейчас :-) | |
|
|
|