<p class="new">
<div class="who">Вася</div>
</p>
<div class="some">
<a href="#" class="show">Показать</a>
</div>
<p class="new">
<div class="who">Петя</div>
</p>
<div class="some">
<a href="#" class="show">Показать</a>
</div>
Нужно показать содержимое пердыдущего дива who при нажатии на кнопку показать.
Пробывал так:
$(function(){
$(".show").click(function(){
alert($(".who", this).prev(".new").text());
});
});
Ну это явно не правильно, мб кто подскажет как?
Спустя 44 минуты, 38 секунд (20.10.2011 - 13:49) killer8080 написал(а):
так?
$(document).ready(function(){
$(".show").click(function(){
alert($(this).parent().prev().html());
return false;
})
});
Спустя 35 минут, 30 секунд (20.10.2011 - 14:25) Renden написал(а):
killer8080
Несовсем, так он выбирает все значения предыдущего дива, а мне надо только текст из <div class="who"> этого дива.
Несовсем, так он выбирает все значения предыдущего дива, а мне надо только текст из <div class="who"> этого дива.
<p class="new">
<div class="who">Вася</div>
<div class="Ненужный див">Ненужное значение</div>
<div class="Ненужный див2">Ненужное значение2</div>
</p>
<div class="some">
<a href="#" class="show">Показать</a>
</div>
Спустя 1 час, 54 минуты, 44 секунды (20.10.2011 - 16:19) ApuktaChehov написал(а):
Renden - див с ссылкой "Показать" можно перенести внутрь тега p?
Спустя 16 часов, 21 минута, 21 секунда (21.10.2011 - 08:41) Renden написал(а):
ApuktaChehov
К сожалению нет, это разметка плагина jquery..
К сожалению нет, это разметка плагина jquery..
Спустя 3 часа, 58 минут, 24 секунды (21.10.2011 - 12:39) ApuktaChehov написал(а):
Так. Я сделал. Но есть одно "НО". По какой причине браузеры не допускают нахождение тега div в теге p. Я проверял span может находиться в p, в div нет, хз почему.
Вот пример, сделано "на коленке", и работает оно со span-ом.
Если верстку поправить нельзя, то это нужно доработать. Как? Честно, сейчас мне в лом думать. Я лучше пойду поработаю маленько. Счастливо!
Вот пример, сделано "на коленке", и работает оно со span-ом.
function asd(obj) {
var res_obj = null;
var parent = obj.parentNode.parentNode;
var obj_arr = parent.getElementsByTagName('*');
var cur_obj_index = 0;
//Определяем порядковый номер текущего элемента
for(i = 0; i < obj_arr.length; i++)
if(obj_arr[i] == obj){
cur_obj_index = i;
break;
}
//Ищем предыдуший тег p
for(i = cur_obj_index; i > 0; i--)
if(obj_arr[i].tagName == 'P') {
//Выбираем первый спан
res_obj = obj_arr[i].getElementsByTagName('span')[0].childNodes[0].nodeValue;
break;
}
return res_obj;
}
<p class="new">
<span class="who">Вася</span>
</p>
<div class="some">
<a href="#" class="show" onclick="asd(this);">Показать</a>
</div>
<p class="new">
<span class="who">Петя</span>
</p>
<div class="some">
<a href="#" class="show" onclick="asd(this);">Показать</a>
</div>
Если верстку поправить нельзя, то это нужно доработать. Как? Честно, сейчас мне в лом думать. Я лучше пойду поработаю маленько. Счастливо!
Спустя 1 час, 17 минут, 2 секунды (21.10.2011 - 13:56) Michael написал(а):
Цитата |
Несовсем, |
alert($(this).parent().prev().find('div.who').html());
Спустя 1 час, 5 минут, 6 секунд (21.10.2011 - 15:01) killer8080 написал(а):
Цитата (ApuktaChehov @ 21.10.2011 - 12:39) |
Так. Я сделал. Но есть одно "НО". По какой причине браузеры не допускают нахождение тега div в теге p. |
Наверно потому что в валидном документе таких конструкций быть не должно.
Спустя 2 часа, 17 минут, 17 секунд (21.10.2011 - 17:18) ApuktaChehov написал(а):
killer8080 - так точно Кэп!
