2010-09-07 4 views
2

Je veux ajouter des styles css avec jQuery, mais ne pas être dans le code HTML lorsque j'imprime html(). Exemple:jQuery ajouter css sans être en html

$('#wat').css("cursor", "pointer"); 

$('#ok').click(function() { 

var str = $("#wat").html(); 

$("#html").text(str); 

}); 

quand il imprime le code html, dans l'élément avec l'ID de « wat », il a style="cursor: pointer;

Est-il possible d'ajouter le code CSS sans être dans le html? merci

Répondre

1

@David, pas vraiment. Je pense que ce que vous pourriez vouloir faire est d'avoir un fichier print.css que vous pouvez appliquer lors de l'impression qui éteint tout ce que vous ne voulez pas pendant une impression. En règle générale, si vous avez un fichier print.css et que vous indiquez au navigateur qu'il s'agit du css à utiliser lors de l'impression, il traitera le reste automatiquement pendant une impression. Donc, dans votre css principal, vous avez un style de curseur et dans votre impression vous auriez un style de curseur où vous définissez un type de style différent.

0

Compte tenu de cette structure HTML:

<div id="something"> 
    <div id="else"> 
    </div> 
</div> 

Vous pourriez peut le faire:

$('<style></style>').appendTo('head').text('#something { cursor: pointer; }'); 

Ou

$('#something').clone().children().removeAttr('style').parent().html(); 

Pour la dernière, notez que depuis html() a l'innerHTML l'élément, vous devez l'appeler sur le parent pour obtenir le code HTML de l'élément insid e it.

Aucune de ces solutions n'est particulièrement propre ou satisfaisante. Peut-être que vous voudriez envisager une alternative à ce que vous faites?