2013-08-30 2 views
0

Пожалуйста, помогите мне создать функцию, которая включает в себя множество переменных - по крайней мере, два ...OnClick с несколькими переменными

У меня есть таблица, в которой он был создан с PHP и MySQL ... все идентификаторы были созданы динамически, что почему мне нужно Поймать их другим способом, чтобы указать их.

Небольшой кусок кода для лучшего понимания структуры таблицы - я включил в jsFIDDLE

function delete_id(id) { 
    alert (id); 
    var test = $(this).closest('tr').attr('id'); 
    alert(test); 
}; 
+0

Проверьте мой ответ. –

ответ

2

Попробуйте это:

var test = $('#'+id).closest('tr').attr('id'); 

$(this) в функции не означает, что вы думаете. Вы должны использовать id, что вы прошли в function и получить этот элемент с $('#'+id)

Demo here

+0

Действительно - круто !!! Спасибо!!! –

1

Я считаю, используя делегат с на метод хорошо использовать здесь. Как будто мы используем это, он не собирается пузырить событие для документирования, а также не собирается создавать столько обработчиков кликов для всех tr или тегов под этими динамическими tr в DOM, которые в целом хороши для производительности.

$(document).ready(function(){ 
    $('.ultomonitor').on('click','a', function(){ 
    alert("id of div under a " + $(this).children().attr('id')); 
    alert("id of tr above a " + $(this).closest('tr').attr('id')); 
    }); 
}); 

Working Demo

1

Лучше подход

DEMO

HTML

<a href="#"><div id="8928392" onclick="delete_id(this)" 

JS

function delete_id(el) { 
    var test = $(el).closest('tr').attr('id'); 
    alert(test); 
}; 

или

Чистый JavaScript подход

DEMO

function delete_id(el) { 
    var test = getNearestTableRowAncestor(el).id; 
    alert(test); 
}; 

function getNearestTableRowAncestor(htmlElementNode) { 
    while (htmlElementNode) { 
     htmlElementNode = htmlElementNode.parentNode; 
     if (htmlElementNode.tagName.toLowerCase() === 'tr') { 
      return htmlElementNode; 
     } 
    } 
    return undefined; 
} 
+0

Мне нужно сохранить это просто для функции JQuery/Ajax - большое спасибо за ваш подход !!! –

+0

@SergiuCostas это лучший подход, чем ответ -> http://jsfiddle.net/cse_tushar/UcCeW/31/ –

+0

В моем случае мне нужны оба идентификатора ... ответ дал мне решение получить в функции как Идентификаторы ... в вашем случае - у меня есть только ID от ... Но в любом случае хороший подход .. большое вам спасибо! Я бы учился на вашем опыте !!! –

Смежные вопросы