For a single element I would not imagine that the performance difference between setting it and checking it first is significant. You might as well just do something like this:
$(document).ready(function(){
var t = setInterval(function(){
$('#myElement').attr('style', 'opacity: 0.9; cursor: auto; visibility: visible;');
}, 1000);
}
I realise that you would normally set the styles using $('#myElement').css, but as you want to ensure no new styles were added, setting the style attribute should achieve what you want. Unfortunately it doesn't account for changes to the stylesheet or style blocks elsewhere on the page. To do this you would have to make your style attribute a bit more comprehensive and include "!important" after each value.
Out of interest, why do you need to do this? It sounds like there might be a better solution to the problem.
Edit:
If you want to stop the user using clearInterval, instead of
var t = setInterval(...);
Just use
setInterval(...);
As clearInterval requires the reference to the interval in order to clear it (correct me if I'm wrong here). By not creating that reference the interval is still executed but not clearable.
Ultimately though I don't think there will be a fool proof method to achieve this. It should however, prevent all but the most determined users with from hiding whatever it is you want them to see.
Edit 2:
If you just want to check the CSS it is possible but a bit of a pain as you would have to check each property in turn. Using jQuery's css function you could do something like this:
$(document).ready(function(){
setInterval(function(){
var el = $('#myElement');
var tampered = false;
if (el.css('display') != 'block') tampered = true;
if (el.css('visibility') != 'visible') tampered = true;
if (el.css('position') != 'static') tampered = true;
....
if (tampered){
// Do your thing
}
}, 1000);
}