11
votes

JQuery: Sélectionnez l'attribut de style?

Comment choisir avec un attribut de style spécifique? xxx

J'essaie: xxx

mais rien n'est sélectionné.


6 commentaires

Pourquoi n'utilisez-vous pas de classes / IDS pour sélectionner des choses? Et pourquoi utilisez-vous des styles style = ?


@Thejh Il y a de bonnes raisons d'utiliser des styles inline. Lorsque vous avez de nombreux objets qui diffèrent d'un style de base à chaque fois, la configuration d'une nouvelle carte d'identité est souvent inutile ou pour le code dynamique, non applicable.


J'essaie d'extraire des données d'une page HTML existante.


Essayez de chercher un ancêtre / descendant avec un identifiant, puis utilisez .children ('div') ou .parent () etc pour obtenir la div en question.


Vous savez que cela fonctionne sans la faute de frappe, voir ma réponse.


Dupliqué possible de Y a-t-il un sélecteur de style à JQuery?


5 Réponses :


3
votes

(cela ne répond pas à la question. Toutefois, si la personne qui a écrit la page HTML avait utilisé des cours au lieu de l'attribut de style, l'OP n'aurait pas ce problème.)

.foo { width: 420px; text-align: left; margin-top: 10px; margin-bottom: 10px; }

<div class="foo"> </div>

$("div.foo")


0 commentaires

2
votes

Peut-être essayez peut-être xxx

Il serait toutefois plus facile de sélectionner l'élément par un attribut tel que la classe ID ou CSS, ou par sa position à un élément comportant une classe ID ou CSS.


0 commentaires

10
votes

À ma connaissance, il n'y a aucun moyen de le faire à l'aide d'un sélecteur JQuery, mais vous pouvez utiliser le filtre () Méthode à la place:

$("div").filter(function() {
    var $this = $(this);
    return $this.css("width") == "420px"
        && $this.css("text-align") == "left"
        && $this.css("margin-top") == "10px"
        && $this.css("margin-bottom") == "10px";
});


2 commentaires

Cache $ (ceci). S'il te plaît. Pour le souci de ma CPU.


OK, personne dans le bon esprit ne ferait réellement ce que le questionneur a essayé - cependant, le filtre est un grand tour pour beaucoup de bonnes choses!



17
votes

Votre exemple fonctionne pour moi, dans le chrome au moins, une fois que j'ai corrigé la typographie de la manquante "à la fin de la ligne.

$("div[style='width: 420px; text-align: left; margin-top: 10px; margin-bottom: 10px;']");


1 commentaires

Ceci est une solution très spécifique. Et si vous recherchez un attribut d'un style, par exemple. text-align: gauche ?



0
votes
<h1>Hello header</h1>
<p style="color: red;">Hello My</p>
<script>
$(document).ready(function(){
$("p[style='color: red;']").fadeOut("10000",function(){
    $("h1").hide();
});
});
</script>
The style should be exact same as of in the  tag and $ selector

0 commentaires