02.04.2009, 16:37
|
|
Частичное изменение содержимого элемента
Для частичного изменения содержимого элемента, насколько я понял, используется 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
|
|
02.04.2009, 17:10
|
-
|
|
Регистрация: 16.07.2008
Сообщений: 207
|
|
у Вашего div задан id. так что обращайтесь прямо к нему:
getElementById('word_id').innerHTML
Если не будет id, то через childNodes
|
|
02.04.2009, 17:53
|
|
Я пытался так делать..но почему-то не получается.
Возможно, это связано с тем как я вызываю функцию (с параметром cell)?
|
|
02.04.2009, 18:47
|
-
|
|
Регистрация: 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);
}
|
|
02.04.2009, 19:04
|
Аспирант
|
|
Регистрация: 23.12.2008
Сообщений: 75
|
|
Цитата:
|
и id с цифры не может начинаться
|
уверены? ;-)
|
|
02.04.2009, 21:55
|
-
|
|
Регистрация: 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-последовательность. Правда, таким методом никто не пользуется.
|
|
|
02.04.2009, 22:57
|
Аспирант
|
|
Регистрация: 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>
|
|
03.04.2009, 00:23
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
IIIEPJIOK,
где будет работать?
например,с XHTML-ным doctype-ом на мобильнике будет работать?
а под Konquere?
а под остальными браузерами?
не факт.
половина багов не-кросбраузерных скриптов свящана с нежеланием разработчиков браузеров следовать стандартам.
вторая половина, из-за нежелания/неумения разработчиков скриптов следовать стандартам.
В BOM-е есть объект window.elements
его даже можно заставить нормально работать в мозилле, при помощи доктайпа.
но, это не повод его использовать.
потому что есть getElementByID, который работает одинаково хорошо во всех браузерах, и об этом известно наверняка
|
|
03.04.2009, 09:17
|
Аспирант
|
|
Регистрация: 23.12.2008
Сообщений: 75
|
|
IE, Opera FF, GoogleCrome, Safari и с xhtml доктайпом - будет - факт
- тут конечно меня вы прихватили , настолько популярный броузер, а у меня его нет, досада
Последний раз редактировалось IIIEPJIOK, 03.04.2009 в 09:25.
|
|
03.04.2009, 09:58
|
|
Сообщение от 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 срабатывает
|
|
|
|