Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Поиск элемента (https://javascript.ru/forum/dom-window/52457-poisk-ehlementa.html)

Officeoff.ru 20.12.2014 12:26

Поиск элемента
 
Всем привет. Не могу понять, как написать код.
Есть html код
<div class='str'>
<div class='res'></div><input type='hidden' value='$r[id]' name='id'><div class='status'>$status</div>....

есть js
$(".in_str").click(function() {
		var action = "up_status";
		var res = $(this).siblings('.status');
		res.hide();
....
	});

Внутри класса res есть код, который как раз выводит div с классом .in_str
'<div class="in_str" id="'.$selected.'"><div class="'.$key.'" style="float: left;"></div><div class="status_word">'.$val.'</div><div class="clear"></div></div>';

Вот не могу понять, как спрятать переменную res. Думаю, что вопрос в siblings, точнее нужно использовать не эту функцию.

рони 20.12.2014 13:07

Officeoff.ru,
:-?

Officeoff.ru 20.12.2014 13:55

Рони, я понимаю, что вопрос тупой, но все же...

Safort 20.12.2014 13:59

Officeoff.ru,
дело в том, что нам не понятно чего ты хочешь, по этому и помочь не можем.

рони 20.12.2014 14:15

Цитата:

Сообщение от Officeoff.ru
Есть html код

нету!!!
Цитата:

Сообщение от Safort
дело в том, что нам не понятно чего ты хочешь, по этому и помочь не можем.


MallSerg 20.12.2014 14:40

var res = $(this).siblings('.status');

заменить на

var res = $(this).find('.status'); если искомый блок внутри элемента
или
var res = $(this).siblings().find('.status'); если искомый блок рядом с элементом

Officeoff.ru 20.12.2014 16:03

Ок. Попробую написать иначе.
<div class='str'>
				<div class='res'></div><input type='hidden' value='$r[id]' name='id'><div class='status'>$status</div>
				<div class='number'><a href='$r[id]'>$r[user_num]</a></div>
				<div class='date'>$date</div>
				<div class='contr'><a href='/contragent/$r[client]'>$r[name]</a></div>
				<div class='redact'>
					<div class='bar'><a href='$r[id]'><div class='edit'></div></a></div>
					<div class='bar'><input type='hidden' value='$r[id]' name='id'><div class='delete'></div></div>
				</div>
				<div class='clear'></div>
			</div>";


Когда кликаешь на класс status

echo "<div style='position: absolute; margin-top: 11px; margin-left:-9px;'><div class='box-up'></div><div class='box'>";
			$forms_type = array(
			'green'=>'Текущий',
			'violet'=>'Оплачен',
			'yellow'=>'Выполнен',
			'red'=>'Просрочен'
			);
			$i = "-1";
			foreach ($forms_type as $key=>$val) {
				$i++;
				$selected = ($i == $status) ? 'active' : '';
				echo '<div class="in_str" id="'.$selected.'"><div class="'.$key.'" style="float: left;"></div><div class="status_word">'.$val.'</div><div class="clear"></div></div>';
			}
	echo "</div></div>";

$(".status").click(function(e){
		var action = "status";
		var page= $("#page").text();
		var id = $(this).siblings("input[name='id']").attr("value");
		var res = $(this).siblings('.res');
		$('.res').hide();
		$.post("/modules/action.php", {action:action, page:page, id: id}, function(data){
			if (data.length>0) {
				res.show();
				res.html(data);
			}
		});
	});
	
	// Меняем статус счета
	$(".in_str").click(function() {
		var action = "up_status";
		var res = $(this).siblings().find('.status');
		res.hide();
	});

рони 20.12.2014 16:17

Цитата:

Сообщение от Officeoff.ru
$(".in_str").click

клик то работает? или нет
... если нет то поставьте сначали клик на элемент который не перезаписывается
$(".str").on("click" , ".in_str" , function() {}) потом ищите ваш элемент
на всякий случай html как небыло так и нет - где структура на момент клика

Officeoff.ru 20.12.2014 17:07

click работает.


Часовой пояс GMT +3, время: 13:33.