Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.09.2013, 18:58
Интересующийся
Отправить личное сообщение для pumaone Посмотреть профиль Найти все сообщения от pumaone
 
Регистрация: 05.08.2013
Сообщений: 19

доступ к родителю
<li><img src="http://site.com/img/ImgCatalogueJpg/600/mono/p24img/1.jpg" onclick='set_parent_width(this.src)'></li>

взял 'src' обрезал получил текстовое значение (mono\p21img) теперь используя это значение нужно задать стиль родителю

function set_parent_width(src) {

if (src == 'mono/p24img') {this.parrentNode.style.width = '100%';}

}

результат: -->
this.parrentNode == undefined
this.parentElement == undefined
this.previousSibling == undefined

P.S/ видимо чет я не правильно сделал. Подскажите пожалуйста что?
Ответить с цитированием
  #2 (permalink)  
Старый 24.09.2013, 19:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от pumaone
set_parent_width(src)
где тут this?
Ответить с цитированием
  #3 (permalink)  
Старый 24.09.2013, 19:15
Интересующийся
Отправить личное сообщение для pumaone Посмотреть профиль Найти все сообщения от pumaone
 
Регистрация: 05.08.2013
Сообщений: 19

в смысле? я передал src аргументом.
Ответить с цитированием
  #4 (permalink)  
Старый 24.09.2013, 19:15
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Дело в том, что функции являются дочерними элементу window, а не элементу, которым они были вызваны. То есть, код
this.parentNode.style.width
,
вызванный внутри функции, равнозначен коду
window.parentNode.style.width
,
что не есть правильно.
Чтобы код работал, надо либо исполнять его сразу в onclick, без всяких вызовов функций, либо вместо атрибута src передавать весь элемент <img>. Вот так:
<html>
<head>
<script>
function set_parent_width(elem) {
var src = elem.src;
if (src == 'mono/p24img') {elem.parrentNode.style.width = '100%';}

}
</script>
</head>
<body>
<img src="http://site.com/img/ImgCatalogueJpg/600/mono/p24img/1.jpg" onclick='set_parent_width(this)>
</body>
</html>

Последний раз редактировалось Erolast, 24.09.2013 в 19:18.
Ответить с цитированием
  #5 (permalink)  
Старый 24.09.2013, 19:21
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

либо писать set_parent_width.call(this, this.src)
либо (самый верный вариант) навешивать обработчик скриптом:
var el = document.querySelector('img');
el.onclick = set_parent_width;
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Доступ к родительскому элементу по дочернему Кирюха =) jQuery 24 13.06.2018 12:22
Как получить доступ к iframe? vladbir Общие вопросы Javascript 9 21.11.2012 20:05
Доступ к Apache в локальной сети из интернета bayah Серверные языки и технологии 2 22.07.2012 10:36
userJS доступ к переменным страницы (Chrome) DragorWW Opera, Safari и др. 2 13.07.2011 15:33
Как в jQuery получить доступ к фрейму или самому верхнему окну? Neokortex jQuery 7 20.12.2010 10:38