Impossible de définir CSS à l’aide de variable – jquery

J’essaie de définir dynamicment css avec les variables que je récupère de ce qu’un utilisateur tape dans un champ de texte.

C’est la ligne de code:

$(get_elem_hierarchy()).css($(this).data('theCss').theProp, $(this).data('theCss').theVal); 

Tout fonctionne bien. La propriété css et la valeur css suivent correctement la console, mais ne le définissent pas pour une raison quelconque. Si je code dur cela fonctionne bien.

J’ai aussi essayé d’envelopper des citations et cela ne fonctionne pas non plus, alors ce n’est pas le problème.

Est-ce que je manque quelque chose? J’ai regardé partout et je ne peux rien trouver qui, même à distance, soit proche de la discussion de cette question, alors peut-être que j’y vais mal.

Toute aide serait grandement appréciée.

Y a-t-il une raison spécifique pour laquelle vous utilisez .data ()? Selon le site jQuery –

jQuery.data (elem)

Renvoie un identifiant unique pour l’élément.

En règle générale, cette fonction sera uniquement utilisée en interne. Vous n’utiliserez probablement pas la méthode data () de cette manière. Il est appelé automatiquement lorsque cela est nécessaire lorsque vous utilisez l’autre fonctionnalité data ().

J’ai créé un exemple montrant comment vous pouvez taper un nom et une valeur CSS dans deux zones de saisie, puis les appliquer à un div, afin de vérifier que vous pouvez définir CSS à l’aide de variables.

Vous pouvez éditer et jouer avec l’exemple ici .

Comme vous pouvez le constater, il utilise la commande jQuery.val () pour extraire le texte de chaque zone de texte et les affecter à une variable. Est-ce ce que vous aviez l’intention de faire?

MODIFIER:

Exemple modifié ici

qui utilise une zone de texte pour la saisie et vous permet de spécifier plusieurs atsortingbuts css. Cela fonctionne car jQuery.css () peut accepter un object en tant que paramètre. Nous construisons donc un object avec les propriétés et leurs valeurs respectives en fonction de la valeur textarea, puis passons cet object dans la commande jQuery.css (). Spécifiez simplement les atsortingbuts dans la zone de texte comme vous le feriez dans les balises de style CSS, c.-à-d.

 background-color: red; height: 500px; width: 300px; font-size: 20px; color: white; 

et tout sera appliqué au

avec id="mydiv"

Code jQuery ici –

 $(function() { $('#mybutton').click(function(e) { var cssObject = {}, cssName = null, cssValue = null; var cssAtsortingbuteSsortingng = $('#value').val(); var cssAtsortingbuteArray = cssAtsortingbuteSsortingng.split(";"); for (var i = 0 ; i < cssAttributeArray.length ; i++){ cssName = $.trim(cssAttributeArray[i].substring(0,cssAttributeArray[i].indexOf(":"))); cssValue = $.trim(cssAttributeArray[i].substring(cssAttributeArray[i].indexOf(":") + 1, cssAttributeArray[i].length)); cssObject[cssName] = cssValue; } $('#mydiv').css(cssObject); }); });