问答详情
源自:2-10 jQuery选择器之属性筛选选择器

$('div[name~="a"]')的解释有问题吧?

我上了几个网,发现 $('div[name~="a"]')这句话的解释各不相同,然后可以把 name="a b"直接改为name="a",样式照样生效了,这不就和老师说的矛盾了吗

提问者:AlexZhong 2016-10-23 22:17

个回答

  • Mext
    2016-10-23 22:46:39

    理解问题,就像css选择器一样,适用于多类名等情况。

    <div class="message message-left">左边的消息</div>
    <div class="message message-right">右边的消息</div>
    $('div[class~=message-left]').css('color','blue');
    $('div[class~=message-right]').css('color','red');

    当然,以上选择器也是可以直接用对应类名进行选择的。如果开发环境比较大的话(鬼知道其他人都对别的类名做了什么),就容易造成污染,让你使用属性选择器以缩小范围,但是你除了~=选择器以外,用-=、^=不行,*=、$=范围有些大,~=最贴切。

    望理解。