0
votes

Ne fonctionne pas $ (this) .Removeattr ('123'). ATTR ('456', '');

Y a-t-il quelqu'un qui peut résoudre ce problème? Est à propos de: attr (123, '');

Par exemple A ATTT: 123 = "" à 456 = "" P> blockQuote>

fonctionne: P>

$('product[456s0s0]').removeAttr('456s0s0').attr('456s0s1','');
$('product[456s0s1]').css({'background-color':'#cfc'}); 


2 commentaires

L'analyseur HTML (au moins en chrome) semble plutôt pardonner et acceptera les noms d'attribut non valides. Mais alors essayant d'ajouter un nouveau Script d'AttiBute non valide via Causer cette erreur (à nouveau en chrome) Échec de l'exécution de 'Setattribute' sur "Element": "456SSSSS1" n'est pas un nom d'attribut valide .


Malheureusement, cela semble être le problème. :-( Merci tho.


3 Réponses :


1
votes

C'est parce que ces attributs et la balise code> sont non standard. Le fait que soit d'entre eux fonctionne du tout, c'est presque beaucoup de chance.

Je suggérerais d'utiliser des balises HTML standard, à moins que vous ne souhaitiez vraiment écrire votre propre doctype, ainsi que des attributs data ​​code> pour stocker vos métadonnées personnalisées. Essayez ceci: p>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p><span data-123s0s0>123s0s0 to abc123: Works</span></p>
<p><span data-456s0s0>456s0s0 to 456s0s1: Works</span></p>


2 commentaires

C'est plus difficile que simplement un fond, c'était un exemple. À ONCLICK, la commande de pièce change, qui envoie des informations à SQL, puis les modificationsTR changent. Ces types d'attr sont utilisés dans de nombreux autres. Alors l'ordre est difficile à changer. Est-ce possible?


La logique qui est effectuée n'est pas pertinente pour les changements ci-dessus, ils vont toujours fonctionner lorsqu'il sera fait de cette façon.



0
votes

J'ai trouvé le problème. Le nom d'attribut ne peut pas commencer par des chiffres. Donc, le premier caractère de l'attribut doit être une chaîne ou un trait de soulignement.

$('product[456s0s0]').removeAttr('456s0s0').attr('f456s0s1','');
$('product[456s0s1]').css({'background-color':'#cfc'}); 


1 commentaires

J'ai essayé chrome et cela donne une erreur DOM dans la console.



0
votes

Il semble que tout protège de démarrer la largeur d'un numéro.

L'analyseur HTML (au moins en chrome) semble plutôt pardonner et acceptera les noms d'attribut non valides. Mais alors essayant d'ajouter un nouveau Script d'AttiBute non valide via provoquera cette erreur (à nouveau en chrome) Impossible d'exécuter 'SetAttribute' sur 'Element': '456SSSS1' n'est pas un nom d'attribut valide. - < em> peter b


0 commentaires