getElementById - помогите разобраться
Код:
<script type="text/javascript">
$(document).ready(function(){
$(function() {
$("div.tile").click(function(){
var id = $(this).attr("id");
var start = 1;
$.ajax ({
url: "http://site.com.ua/js/js3.php",
type: "GET",
data: {"id": id, "start": start},
cache: true,
success: function(response)
{
var myArray = response.split('abra_kadabra')
if (myArray[0] == 1)
{
$(document.getElementById(id)).html(myArray[1]);
}
else
{
alert('это все');
}
}
});
});
});
});
</script>
$(document.getElementById(id)).html(myArray[1]); - меняет содержание тега, но тег оставляет, как его убрать? |
зачем getElementById? Оптимизация типа ? )))
$('#' + id).remove()
|
Думаю, как-то так:
$(function() {
$("div.tile").click(function() {
$.get('http://inwatch.com.ua/js/js3.php', {id: this.id, start: 1}, function(data) {
data = data.split('abra_kadabra');
if(data[0] == 1) $('#'+this.id).prev().after(data[1]).next().remove();
else alert('Это всё');
});
});
});
Не проверял, но должно работать. |
Цитата:
Цитата:
|
...
if (myArray[0] == 1) {
var oldNode = getElementById(id);
oldNode.parentNode.replaceChild(myArray[1], oldNode);
} ...
:) |
Спасибо за ответы.
Цитата:
Цитата:
Цитата:
.replaceWith() - меняет полностью, но задача в следующем: нужно, чтоб при нажатии на старый ДИВ, он менялся на див из js/js3.php уже со своим id и при повторном нажатии снова выполнялся js3.php с новыми id. Подскажите, как это правильно реализовать. |
$(function() {
$("div.tile").click(function() {
$.get('http://inwatch.com.ua/js/js3.php', {id: this.id, start: 1}, function(data) {
data = data.split('abra_kadabra');
if(data[0] == 1) $('#'+this.id).html(data[1]).prop('id', 'new_ID');
else alert('Это всё');
});
});
});
А где Вы новый ID получаете? |
Вот что-то вроде этого. Смысл думаю понятен:
$(function() {
var handler = function() {
var target = $(this);
$.get('http://inwatch.com.ua/js/js3.php', {id: this.id, start: 1}, function(data) {
data = data.split('abra_kadabra');
var el = $(data[1]);
target.replaceWith(el);
el.click(handler);
});
};
$("div.tile").click(handler);
});
|
Цитата:
|
Цитата:
|
Немного поменял свою задачу (решил сделать эстетичней, Вы уж простите за мои глупости :-? ), относительно этого кода:
$(function() {
var handler = function() {
var target = $(this);
$.get('http://site.com.ua/js/js3.php', {id: this.id, start: 1}, function(data) {
data = data.split('abra_kadabra');
var el = $(data[1]);
target.replaceWith(el);
el.click(handler);
});
};
$("span.vrnt").click(handler);
});
$("span.vrnt") - находится в $("div.tile"), у каждого свой id, но начинаются одинаково: span.vrnt - id='Brand|Model/2' div.tile - id='Brand|Model' Как указать в 03 или 07 строчке кода, что нужно менять не span.vrnt, а div.tile, собственно, в котором span.vrnt |
Если я правильно понял, то:
var target = $(this).parent(); |
Цитата:
<script type="text/javascript">
$(function() {
var handler = function() {
var target = $(this).parent().parent();
$.get('http://site.com.ua/js/js3.php', {id: this.id}, function(data) {
data = data.split('abra_kadabra');
var el = $(data[1]);
target.replaceWith(el);
el.click(handler);
});
};
$("span.vrnt").click(handler);
});
</script>
Да, спасибо, но появилась другая проблема: Теперь при повторном клике на span ('<' '>') сносятся родители, игнорируя вставленный код (если я правильно понимаю) вот ссылка на всякий случай |
| Часовой пояс GMT +3, время: 16:51. |