ExBB Community » » JavaScript » Вопросы по JavaScript

Страниц (7): « 1 2 3 [4] 5 6 7 »
 

46. yura3d - 24 июля 2009 — 11:47 - перейти к сообщению
Furax
Спасибо, буду пробовать
47. yura3d - 29 июля 2009 — 08:44 - перейти к сообщению
Furax
Ещё раз огромное спасибо, с формой разобрался. Остался небольшой вопрос, каким образом можно удалить ранее созданный TextNode?
48. Furax - 29 июля 2009 — 12:02 - перейти к сообщению
CODE:
TextNode.parentNode.removeChild(TextNode);
49. yura3d - 6 августа 2009 — 13:53 - перейти к сообщению
Furax пишет:
CODE:
TextNode.parentNode.removeChild(TextNode);

Спасибо, получилось, но некоторые вопросы остались. Допустим, в одном слое было создано несколько текстнодов, но их идентфикаторы не были сохранены (имеется в распоряжении только идентификатор самого слоя). Каким образом можно в этом случае редактировать/удалять имеющиеся в слое текстноды, не прибегая к innerHTML для слоя? Я так понимаю, наверное, самым простым вариантом будет:
CODE:
div.appendChild(document.createTextNode('<span id="text">Тут текст</span>'));

А потом, соответственно, изменение содержимого данного текстнода так:
CODE:
div.getElementById('text').innerHTML = 'Новый текст';

Может есть другие варианты?
50. Furax - 7 августа 2009 — 03:26 - перейти к сообщению
В createTextNode() бесполезно передавать HTML-код - это не innerHTML, так что любой текст будет просто выведен - в результате предыдущий пример работать не будет. Также я не помню, а может ли вообще TextNode иметь id - кажется, нет, поскольку это не тег. Ну и наконец, использовать innerHTML, коли уж Ты собрался всё писать на DOM-методах, явно не следует.

Редактировать текст можно просто:
CODE:
var textNode = div.appendChild(document.createTextNode('Тут текст'));
...
textNode.nodeValue = 'Новый текст';
Если же по каким-либо причинам сохранять таким образом указатель на textNode неудобно, можно обратиться к нему через тот самый div:
CODE:
div.lastChild.nodeValue = 'Новый текст';
Здесь предполагается, что текстовый узел остался последним вложенным узлом в divе. Если это не так, лучше всё же сохранять указатель, хотя можно найти нужный узел, просматривая div.childNodes.
51. Defenderyk - 12 сентября 2009 — 12:14 - перейти к сообщению
Есть скрипт навигации, вот часть:

CODE:

<script type="text/javascript">
$(document).ready(function() {

$("ul#topnav li").find("span").stop().fadeTo('normal', 0).hide(); //Set opacity to 0

$("ul#topnav li").click(function() {
$(this).find("span").stop().fadeTo('normal', 1).show();
}).hover(function() {
$(this).css({ 'background' : '#1376c9 url(topnav_active.gif) repeat-x'});
} , function() {
$(this).css({ 'background' : 'none'})
.find("span").stop().fadeTo('normal', 0 , function() {
$(this).hide()
});
});

});
</script>


я так понимаю она отвечает за появление подменю по клику по пункту грлавного меню. как сделать, чтобы реагировало при наведении, а не при клике?

скрипт использует бибилотеку http://ajax.googleapis.com/ajax/....3/jquery.min.js
52. Defenderyk - 13 сентября 2009 — 11:09 - перейти к сообщению
при этом как я понял за клик по меню отвечает:

$("ul#topnav li"Подмигивание.click(function() {

но на что сменить этот клик, чтобы работало при наведении, а не при клике. онмаусовер не помогает так просто. Растерялся
53. Александр Михалицын - 13 сентября 2009 — 16:24 - перейти к сообщению
Defenderyk,
выброси JQuery и научись тоже самое писать сам. Подмигивание
Поверь, гораздо полезнее... Растерялся

Опиши мне конкретно, что должно уметь твое меню. Я даже тебе помогу написать его без JQuery. Подмигивание
54. yura3d - 13 сентября 2009 — 17:13 - перейти к сообщению
Defenderyk
Как вариант, попробуй:
CODE:
$("ul#topnav li").mouseover(function() {
55. Defenderyk - 13 сентября 2009 — 17:14 - перейти к сообщению
Александр Михалицын пишет:
Defenderyk,
выброси JQuery и научись тоже самое писать сам. Подмигивание
Поверь, гораздо полезнее... Растерялся

Опиши мне конкретно, что должно уметь твое меню. Я даже тебе помогу написать его без JQuery. Подмигивание


да что описывать, я ссылку дам на темплейт:

http://www.sohtanaka.com/web-des...rizontal-subnav/

только мне надо, чтобы не при клике, а при наведении. а квери использовать удобно, т.к на нем многое сделать возможно при этом не используя кучу других скриптов.
56. Александр Михалицын - 14 сентября 2009 — 02:17 - перейти к сообщению
Цитата:
только мне надо, чтобы не при клике, а при наведении.

Может я что-то не понял, но там и так при наведении выскакивает... Растерялся
57. Defenderyk - 14 сентября 2009 — 07:40 - перейти к сообщению
не то меню подобрал) найду, дам ссылку

а так, такое же меню, как и по приведенной ссылке, но долно плавно появляться и исчезать при наведении
58. yura3d - 16 октября 2009 — 19:44 - перейти к сообщению
Имеется таблица:
CODE:
<table>
<tr id="div2">
<td><div id="div1"></div></td>
</tr>
</table>

Внутри некоторой ячейки таблицы располагается некоторый слой, id которого мне известен (это div1). Зная id этого слоя, мне нужно получить id тега <tr> (в данном примере это div2), внутри которого находится ячейка и удалить этот тег, т.е. для данного примера после удаления должны остаться тольки теги таблицы:
CODE:
<table>
</table>

Каким образом лучше реализовать задуманное (конечно, желательно на основе DOM) ?
59. Furax - 17 октября 2009 — 03:57 - перейти к сообщению
id строки получать для этого вовсе не обязательно:
CODE:
var tr = document.getElementById('div1').parentNode.parentNode;
tr.parentNode.removeChild(tr);
Но не забывай, что, кроме table, останется ещё tbody.
60. yura3d - 18 октября 2009 — 13:03 - перейти к сообщению
Furax
Огромное спасибо, всё работает. Осталось только сделать проверку на удаление строки в таблице только в том случае, если всё ячейки строки пусты (или имеют определённое содержание). Поэтому вопрос, как пробежаться по всем чилдам тега <tr> ?

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0206]     [ ]