jquery selector - jquery .html () non funziona su ie8




4 Answers

Puoi avvisare la tua risposta prima di assegnarla a html ()

O

È possibile utilizzare la proprietà innerHTML anziché html () di jquery (sebbene sia la stessa)

E potresti voler controllare questo link

class find

Ho una funzione jquery che effettua una chiamata ajax a un metodo webservice sul server web, il metodo restituisce una tabella html con i dati. Sto usando .html () per rendere i valori di ritorno su div. Funziona su Firefox, Chrome, Safari ma non funziona su IE8

$.ajax({
    type: "POST",
    url: "./../WebAjaxCalls.asmx/GetProductInstruction",
    data: "{'ProductID':'" + $("#txtProductID").val()  + "'}",
    success: function(data) {
        if (data.d[0] == "true") {
            **$("#dvProudctInstruction").html(data.d[1]);** 
        }
    },
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    error: function(e, textStatus, errorThrown) {
        bReturn = false;
    }
});  

La riga $ ("# dvProudctInstruction"). Html (data.d [1]); funziona su tutti i browser tranne IE8.

Qualsiasi aiuto su questo sarà molto apprezzato.




Hai provato a impostare data.d[1] su una variabile e poi aggiungerla?

Per esempio:

if (data.d[0] == "true") {
     var results = data.d[1];
     $("#dvProudctInstruction").html(results);
}



Solo un istinto, ma sei sicuro di entrare nel blocco if? Sto solo chiedendo di essere incappato in vero vs "vero" un paio di volte io ...

Provare:

success: function(data) {
    alert('outside of if');
    if (data.d[0] == "true") {
        alert(data.d[1]);
        $("#dvProudctInstruction").html(data.d[1]);
    }
}

Potrebbe non esserci nulla, ma almeno elimineresti la possibilità che semplicemente non avresti mai eseguito la linea di codice che hai evidenziato.




So che è una risposta tardiva; ma puoi anche risolvere il problema con un blocco try / catch. A volte potresti non avere tutto il controllo sul contenuto.

In questo modo si mantiene il codice originale funzionante per i nuovi browser, mentre il catch esegue il innerHTML per IE8.

try {
    //new browsers
    $('#dvProudctInstruction').html(data.d[1]);
} catch (e) {
    //IE8
    $('#dvProudctInstruction').innerHTML = data.d[1];
}

Spero che questo aiuti qualcuno!




Related

jquery jquery-selectors