Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2009, 15:37
kuhok
 
Сообщений: n/a

Частичное изменение содержимого элемента
Для частичного изменения содержимого элемента, насколько я понял, используется InnerText, но он работает только в ИЕ.

Как получить часть содержимого InnerHTML?

HTML
Код:
<td id=1 onClick="Object.Method(this)">
<div id="word_id">Id</div> Name 
</td>
JS
Код:
Object.addToRange = function addToRange(cell){
this[i] = (cell.innerHTML);
};
В JS хочу извлечь не содержимое всей ячейки, а только то, что находится в div
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2009, 16:10
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

у Вашего div задан id. так что обращайтесь прямо к нему:
getElementById('word_id').innerHTML
Если не будет id, то через childNodes
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2009, 16:53
kuhok
 
Сообщений: n/a

Я пытался так делать..но почему-то не получается.
Возможно, это связано с тем как я вызываю функцию (с параметром cell)?
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2009, 17:47
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

кстати да, бардак у вас с вызовом.
и id с цифры не может начинаться.
вот
<td onclick="myfunc()">
<div id="word_id">Id</div> Name 
</td>

function myfunc(){
var mydata = document.getElementById('word_id').innerHTML;
alert (mydata);
}
Ответить с цитированием
  #5 (permalink)  
Старый 02.04.2009, 18:04
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

Цитата:
и id с цифры не может начинаться
уверены? ;-)
Ответить с цитированием
  #6 (permalink)  
Старый 02.04.2009, 20:55
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

Сообщение от IIIEPJIOK Посмотреть сообщение
уверены? ;-)
Спецификация HTML 4.01
Маркеры ID и NAME должны начинаться с буквы ([A-Za-z]) и могут после буквы содержать любое количество букв, цифр ([0-9]), дефисов ("-"), подчеркиваний ("_"), двоеточий (":") и точек (".").

еще:
Цитата:
Значение id должно начинаться с буквы или подчеркивания, оно не может начинаться с цифры. Служба проверки кода W3C может и не заметит подобную ошибку, однако анализатор XML ее обнаружит. Также, если вы намереваетесь использовать id в JavaScript в форме document. idname. value, необходимо присвоить ему допустимое имя переменной JavaScript, которое должно начинаться с буквы или символа подчеркивания и в которых не допускается использование пробелов или дефисов. Также нежелательно использовать символы подчеркивания в именах class или id по причине старых ограничений в CSS и старых браузерах.

Правила применения атрибута id (окончание). Наконец, для самых строгих приверженцев стандартов отметим, что первым символом в имени id или class может быть и цифра - вместо самой цифры необходимо указать соответствующую escape-последовательность. Правда, таким методом никто не пользуется.
Ответить с цитированием
  #7 (permalink)  
Старый 02.04.2009, 21:57
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

я не спрашивал, что об этом написано в спецификации, действительно ли вы уверены, что id нельзя начинать с цифры?

Т.е по вашему, ниже приведенный код работать не будет?

<!DOCTYPE HTML PUBLIC  "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>

<head>
  <title></title>
</head>

<body onload="alert(document.getElementById(1).innerHTML)">
<div id=1>мда :)</div>
</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 02.04.2009, 23:23
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 03.04.2008
Сообщений: 6,233

IIIEPJIOK,
где будет работать?
например,с XHTML-ным doctype-ом на мобильнике будет работать?
а под Konquere?
а под остальными браузерами?
не факт.
половина багов не-кросбраузерных скриптов свящана с нежеланием разработчиков браузеров следовать стандартам.
вторая половина, из-за нежелания/неумения разработчиков скриптов следовать стандартам.
В BOM-е есть объект window.elements
его даже можно заставить нормально работать в мозилле, при помощи доктайпа.
но, это не повод его использовать.
потому что есть getElementByID, который работает одинаково хорошо во всех браузерах, и об этом известно наверняка
Ответить с цитированием
  #9 (permalink)  
Старый 03.04.2009, 08:17
Аспирант
Отправить личное сообщение для IIIEPJIOK Посмотреть профиль Найти все сообщения от IIIEPJIOK
 
Регистрация: 23.12.2008
Сообщений: 75

IE, Opera FF, GoogleCrome, Safari и с xhtml доктайпом - будет - факт
Цитата:
а под Konquere?
- тут конечно меня вы прихватили , настолько популярный броузер, а у меня его нет, досада

Последний раз редактировалось IIIEPJIOK, 03.04.2009 в 08:25.
Ответить с цитированием
  #10 (permalink)  
Старый 03.04.2009, 08:58
kuhok
 
Сообщений: n/a

Сообщение от twolf Посмотреть сообщение
кстати да, бардак у вас с вызовом.
и id с цифры не может начинаться.
вот
<td onclick="myfunc()">
<div id="word_id">Id</div> Name 
</td>

function myfunc(){
var mydata = document.getElementById('word_id').innerHTML;
alert (mydata);
}
Спасибо, работает. Но не совсем так, как я хотел.
Сейчас в mydata помещается содержание 1ой ячейки таблицы..а я хочу, чтобы текущей - именно той, на которую onclick срабатывает
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 16:17