Sto provando a visualizzare una casella di testo quando si fa clic su un elemento di classe numObj. Per qualche ragione ottengo NaNNaNaNaNNaNNaNaNaN dove mi aspetto di vedere il risultato della variabile searchForm nel codice qui sotto.Ottengo NaN quando tento di inserire dell'HTML in un elemento DIV con jQuery
So che NaN sta per Not a Number. Quello che non capisco è perché Javascript sta aspettando un numero? Non riesco a capire perché ci tenga.
$(".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);
});
Il codice generato che ha la classe numObj simile a questa
<td><div class="numObj" preid="73" numarraypos="5"><span class="normal">585.0</span></div></td>
l'attributo numArrayPos ha cAsE diversi nel tuo JS e HTML - era un errore di battitura? In caso contrario, si avranno problemi con l'accesso all'attributo. – scunliffe
Perché non fai un debug? Il var searchForm sta avendo più segni '+' fianco a fianco. – Kangkan
@Kangkan - cosa consigli per il debug di javascript - questo è un problema di bbig che ho. – Ankur