2016-04-20 3 views
2

Я пытаюсь выбрать строку в таблице, которую я создал, и использовать значения. Проблема, с которой я сталкиваюсь, я создал ее с помощью doms в javascript и получил значения из хранимой процедуры, которая затем заполняет таблицу.Выбор строки в таблице html

так я использую простой DIV с идентификатором -

<div id="Tab1" class="tab-pane fade in active"></div>  

создать таблицу и заполнить ее я использовать Ajax вызов -

function GetcarData() { 

$.ajax({ 
    type: "post", 
    data: JSON.stringify({ 
     price: slidval, 
    }), 
    url: "/index.aspx/GetData", 
    dataType: "json", 
    contentType: "application/json", 
    success: function (object) { 
     responseData(object); 
    }, 
    complete: function (object) { 

    }, 
    error: function (object) { 
    } 
}); 
} 
function responseData(object) { 
    var stringed = JSON.stringify(object.d) 
    var arr = JSON.parse(stringed); 
    var i; 
    var out = "<table id='table' class='table table-striped'>"; 
    var rowHeader = $("<tr></tr>").appendTo(out); 
    out += "<td><font size='4'>Make</font></td>"; 
    out += "<td><font size='4'>Model</font></td>"; 
    out += "<td><font size='4'>Version</font></td>"; 
    out += "<td><font size='4'>Engine</font></td>";  
    out += "<td><font size='4'>(AV)Price new</font></td>"; 
    out += "<td><font size='4'>(Av)Price used</font></td>"; 
    out += "<td><font size='4'>Image</font></td>" 

    for(i = 0; i < arr.length; i++) { 
     out += "<tr><td>" + 
     arr[i].Make + 
     "</td><td>" + 
     arr[i].Model + 
     "</td><td>" + 
     "£" + arr[i].version + 
     "</td><td>"+ 
      arr[i].Engine_size +   
     "</td><td>" +   
     "£" + arr[i].price_new + 
     "</td><td>" + 
     "£" + arr[i].price_used + 
      "</td><td><img src="+arr[i].image_url+" width='150' height='100'>" +    
     "</td></tr>"; 
    } 
    out += "</table>"; 
    document.getElementById("Tab1").innerHTML = out; 

} 

Теперь вопрос у меня есть, я не могу показаться, для выбора строки. Я попытался

("#table tr").click(function(){ 
alert("selected"); 
}); 

, но это не сработало.

Anyhelp будут оценены

+1

Подумайте о сроках. Когда используется '(« #table tr »). Click (function() {alert (" selected ");});' run? Выполняется ли это до того, как функция 'responseData()' даже называется? Можете ли вы переместить код, который добавляет обработчик кликов в конец функции 'responseData()'? – Asaph

+1

Отлично, я знал, что это будет нечто тривиальное. Огромное спасибо. –

ответ

2

Вы создали набор элементов, которые не были в DOM когда это страница, и были добавлены только после первоначального DOMContentLoaded

Для прослушивания событий на элементы, которые динамически добавляются, удаляются используя JavaScript DOM-манипуляции, вам нужно использовать немного отличающийся слушатель event.

$(document).on('%eventName%', '%selector%', function() { // do your stuff });

+0

Спасибо, что тоже работал. Я очень ценю помощь. –