2016-05-19 2 views
3

J'ai ce problème:SCRIPT1014: caractère non valide - Citation symbole

tableau

[i] .idAuthor est une variable de chaîne. Je veux passer ce String à une fonction qui est appelée dans une append-String.

Le code fonctionne correctement dans Chrome et Firefox, à l'exception d'Internet Explorer. IE me donne cette erreur: SCRIPT1014: caractère non valide

Je pense que le problème sont les `-Quotes.

J'espère que l'exemple suivant aidera à exprimer mon problème.

<script> 
(...) 
    $("#id").append("<div onClick='myFunc(`" + array[i].idAuthor + "`);'>" + i + "</div>"); 
(...) 
<script> 

Y at-il une autre façon de gérer ma situation ou de remplacer les `-Quotes avec un autre personnage qui est compatible avec IE?

Répondre

2

Vous devez utiliser des guillemets normales, mais leur échapper alors qu'ils sont analysés dans le cadre de la chaîne:

$("#id").append("<div onClick='myFunc(\"" + array[i].idAuthor + "\");'>" + i + "</div>"); 
//------------------------------------^^ ----------------------^^ 
9

On dirait que vous mettez (`contre-apostrophes) dans votre chaîne là-bas.

onClick='myFunc(`" + ... + "`);'> 

Dans les navigateurs modernes, sont utilisés pour les apostrophes inverses template literals. IE11 ne supporte pas les littéraux de modèle.

Au lieu de cela, essayez échapper à vos citations:

onClick='myFunc(\"" + array[i].idAuthor + "\");'> 
1
//create element using jquery 
var elm = $('<div>'); 

//put ID as custom attribute 
elm.attr('data-author-id', array[i].idAuthor); 

//put some html content for new element 
elm.html(i); 

// catch click on it 
elm.click(function(){ 
    // call external function and pass your custom tag attribute as value 
    myFunc($(this).attr('data-author-id')); 
}); 

    $("#id").append(elm); 

quelque chose comme ça devrait fonctionner.

de plus le tir moyen:

$("#id").append($('<div>') 
.attr('data-author-id', array[i].idAuthor) 
.html(i) 
.click(function(){ 
    // call external function and pass your custom tag attribute as value 
    myFunc($(this).attr('data-author-id')); 
})); 

jQuery ont beaucoup de balise de contrôle de la fonctionnalité des attributs, des événements, des valeurs et beaucoup de de choses utiles.