如何用CSS修改jQuery中特定元素的属性?

我试图用jQuery,对其中元素添加一些CSS属性,只针对已有一些特定属性的元素。之所以我不直接使用CSS,是因为我的网站内容过于臃肿,都是通过类来实现我所想要的样式。


我使用的jQuery代码如下: 
if ($('.body_text a').attr('name')) {
    $(this).css({
        'display': 'inline-block',
        'position': 'relative',
        'top': '-200px',
        'visibility': 'hidden'
    })
}

这段代码并不奏效,如果我把提示放于声明中,是否就可以正常运行了?我做错了什么吗?

阅读 3.4k
1 个回答

digitalextremist你要找到你的jQuery选择器:http://api.jquery.com/attribute-equals-selector/

//de or: $('.body_text a[name="value"]').css({
$('.body_text a[name]').css({
    'display': 'inline-block',
    'position': 'relative',
    'top': '-200px',
    'visibility': 'hidden'
})

你也可以用css实现:http://www.w3schools.com/css/css_attribute_selectors.asp

.body_text a[name] {
    display: inline-block;
    position: relative;
    top: -200px;
    visibility: hidden;
 }





knrz 因为 $(this) 实际上并不能提取到任何东西,他需要被放置于一个函数中才能实现调用功能。

 下面的代码是通过name属性实现的,并且对适用于任何一种样式。

 $('.body_text a[name]').css({
     'display': 'inline-block',
     'position': 'relative',
     'top': '-200px',
     'visibility': 'hidden'
})





Cam可以尝试下这种方式:

if( $('.body_text a').attr('name') == "TEXT HERE" ){
     // Do something
} else {
     // Do Something else
}

务必要通过循环来寻找你所需的元素

$('.body_text a').each(function(){


原文:How do I apply css using jquery only when the element has a certain attribute?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
logo
Stack Overflow 翻译
子站问答
访问
宣传栏