Tôi đang dò tìm để hiển thị một hộp văn bản khi một phần tử của lớp numObj được nhấp vào. Vì một số lý do tôi nhận được NaNNaNaNaNNaNNaNaNaN nơi tôi mong đợi để xem kết quả của biến searchForm trong mã bên dưới.Tôi nhận được NaN khi tôi cố gắng chèn một số HTML vào một phần tử DIV với jQuery
Tôi biết NaN là viết tắt của Not a Number. Điều tôi không hiểu là tại sao Javascript lại mong đợi một con số? Tôi không thể hiểu tại sao nó quan tâm.
$(".numObj").live('click',function(){
var preId = $(this).attr('preId');
var arrayPos = $(this).attr('numArrayPos');
alert(preId +" "+arrayPos);
var searchForm = "<table border='0' cellspacing='0' cellpadding='4' id='add-tag2'>"+
+"<tr class='normal'><td bgcolor='#EEEEEE' valign='bottom' nowrap='nowrap'><span class='normal-small'>"+
+"<input name='predicate-name2' type='text' class='normal' id='predicate-name2' size='4' />"+
+"</span></td>"+
+"<td bgcolor='#EEEEEE' valign='bottom' nowrap='nowrap'><span class='normal-small'><=</span></td>"+
+"<td bgcolor='#EEEEEE' valign='bottom' nowrap='nowrap'>x</td>"+
+"<td valign='bottom' bgcolor='#EEEEEE'><=</td>"+
+"<td valign='bottom' bgcolor='#EEEEEE'><span class='normal-small'>"+
+"<input type='text' name='object-object2' id='object-object2' class='normal' size='4' />"+
+"</span></td>"+
+"</tr>"+
+"</table>";
$(".numObj").filter("[preId='"+preId+"']").filter("[numArrayPos='"+arrayPos+"']").html(searchForm);
});
Các mã được tạo có lớp numObj trông giống như sau
<td><div class="numObj" preid="73" numarraypos="5"><span class="normal">585.0</span></div></td>
Thuộc tính numArrayPos của bạn có các cAsE khác nhau trong JS và HTML - đây có phải là lỗi đánh máy không? Nếu không, bạn sẽ gặp sự cố khi truy cập thuộc tính. – scunliffe
Tại sao bạn không thực hiện gỡ lỗi? Var searchForm có nhiều dấu '+' cạnh nhau. – Kangkan
@Kangkan - bạn đề xuất gì để gỡ lỗi javascript - đây là vấn đề tôi gặp phải. – Ankur