|
|
|
| Всем доброго времени суток!
Вопрос такой: есть ряд однотипных элементов
<span id="b1" onclick="chbox(this.id)"><img src="../graphic/blue.gif"><input type="hidden" name="brands[1]" value="0">text</span><br>
<span id="b2" onclick="chbox(this.id)"><img src="../graphic/blue.gif"><input type="hidden" name="brands[2]" value="0">text</span><br>
и т. д.
|
реально ли без ввода дополнительных ID и событий изменить функцией chbox()
парамтры src картинки и value поля? | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 14:16)
| |
<html>
<head></head>
<body>
<script type="text/javascript" language="javascript">
function chbox(id_){
var obj = document.getElementById(id_);
for(var i=0, len = obj.childNodes.length; i < len; i++){
if(obj.childNodes[i].nodeName == 'IMG') obj.childNodes[i].src = '../img/folderopen.gif';
if(obj.childNodes[i].nodeName == 'INPUT') obj.childNodes[i].value = 'test';
}
}
</script>
<span id="b1" onclick="chbox(this.id)"><img src="../img/folder.gif">
<input name="brands[1]" type="text" value="0">
text</span><br>
<span id="b2" onclick="chbox(this.id)"><img src="../img/folder.gif">
<input name="brands[2]" type="text" value="0">
text</span><br>
</body>
</html>
|
| |
|
|
|
|
|
|
|
для: mikha
(16.01.2009 в 17:15)
| | Спасибо большущее, работает! Как я понимаю, obj.childNodes[i] - это будет что-то вроде скалярного массива тэгов внутри obj, а obj.childNodes.length - это размер такого массива? | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 17:34)
| | Попроще спросите, сам только изучать начал.
Документации, на русском почти нет, в английском не силён. По книжкам обламываюсь изучать, предпочитаю мануалы.
Но в принципе ничего сложного.
Вот,
_http://javascript.ru/php
_http://politeraser.ru/dom/dom_nodelist.htm
_http://javascript.ru/start/dom
посмотрите, недавно попалось. | |
|
|
|
|
|
|
|
для: mikha
(16.01.2009 в 18:05)
| | Еще раз спасибо:) пойду почитаю;) | |
|
|
|
|
|
|
|
для: mikha
(16.01.2009 в 17:15)
| | Вот так:
if(obj.childNodes[i].nodeName == 'IMG')
{
if(obj.childNodes[i].src=='../graphic/blue2.gif'){
obj.childNodes[i].src = '../graphic/blue.gif';
}else{
obj.childNodes[i].src = '../graphic/blue2.gif'}
}
|
почему-то не меняет blue на blue2, хотя вроде все логично? | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 18:03)
| | А вы сделайте alert(obj.childNodes[i].src);
Сам на днях с этим столкнулся))) | |
|
|
|
|
|
|
|
для: mikha
(16.01.2009 в 18:10)
| | Ну я сделал. Выводит-то все правильно... Почему-то... | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 18:20)
| | Вы как скрипт проверяете?
Я под Денвером и у меня выводит полный путь, http://test15.ru/img/folder.gif, а не ../img/folder.gif
Естественно что http://test15.ru/img/folder.gif никогда не будет равно ../img/folder.gif | |
|
|
|
|
|
|
|
для: mikha
(16.01.2009 в 18:31)
| | Ух блин, точно!!! Странно, почему он именно так подменяет... Еще и путь обрабатывает | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 18:39)
| | Сюрпрайз)))
<html>
<head></head>
<body>
<script type="text/javascript" language="javascript">
function chbox(id_){
var obj = document.getElementById(id_).getElementsByTagName('span');
for(var j = 0, len_1 = obj.length; j < len_1; j++){
obj[j].onclick = function(){
var obj_span = this.childNodes;
for(var i=0, len = obj_span.length; i < len; i++){
if(obj_span[i].nodeName == 'IMG'){
if(obj_span[i].src == 'http://test15.ru/img/folder.gif'){
obj_span[i].src = '../img/folderopen.gif';
}else{
obj_span[i].src = '../img/folder.gif';
}
}
if(obj_span[i].nodeName == 'INPUT') obj_span[i].value = 'test';
}
}
}
}
</script>
<span id="span_id" onMouseOver="chbox(this.id);"><span><img src="../img/folder.gif">
<input name="brands[1]" type="text" value="0">
text</span><br>
<span><img src="../img/folder.gif">
<input name="brands[2]" type="text" value="0">
text</span><br>
.................</span>
</body>
</html>
|
Только имена для переменных поменяй, после двух суток работы голова не варит что то придумывать.. | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 18:20)
| | Только что проверил, работает.
function chbox(id_){
var obj = document.getElementById(id_);
for(var i=0, len = obj.childNodes.length; i < len; i++){
if(obj.childNodes[i].nodeName == 'IMG'){
//obj.childNodes[i].src = '../img/folderopen.gif';
//alert(obj.childNodes[i].src);
if(obj.childNodes[i].src == 'http://test15.ru/img/folder.gif'){
obj.childNodes[i].src = '../img/folderopen.gif';
}else{
obj.childNodes[i].src = '../img/folder.gif';
}
}
if(obj.childNodes[i].nodeName == 'INPUT') obj.childNodes[i].value = 'test';
}
}
|
| |
|
|
|
|
|
|
|
для: mikha
(16.01.2009 в 18:36)
| | Все, получилось, передаю абсолютный путь в РНР) Очень благодарен за помощь:) | |
|
|
|
|
|
|
|
для: amigo63
(16.01.2009 в 19:34)
| | Выше посмотри.. не надо никаких id, точнее говоря только одно))) | |
|
|
|