46行 老师给出的答案对么? 问题里没有包含字母‘a’,
//查找所有div中,有属性name中的值包含一个连字符“空”的div元素
我这样写也找不到这个元素 $("div[name~=' ']").css("border", "3px groove #668B8B"); 空格怎么表示呢
对于老师给出的答案$("div[name~='a']") ,我的理解是这样的: 其中的'~'波浪线表示结果需包含有空格条件,而等号后的'a'是举例value=a的例子,结合左边图片里面的描述就是'包含有空格且也包含值a'的,即name="a b"
4:属性包含单词过滤器
用于选择指定属性值中包含给定单词(由空格分隔)的元素
格式:$("selector[attribute~=value]");
例子:$('input[name~='news']').val("name中包含news单词的元素");
参考文档http://blog.csdn.net/woshisap/article/details/7341136
不明白可以问我
//我第一次是这么做的
<script type="text/javascript">
//查找所有div中,有属性name中的值包含一个连字符“-”的div元素
$("div[name*='-']").css("border", "3px groove #00FF00");
</script>
<script type="text/javascript">
//查找所有div中,有属性name中的值包含一个连字符“空”的div元素
$("div[name*=' ']").css("border", "3px groove #668B8B");
</script>
//后来仔细看了 ~=和 |=的定义,其实就是老师给的那个答案,只不过是问题问的方式不一样,仔细看看定义理解下
问题描述有错误,应该是 a-为前缀 以空格分隔后含有字符a 老师主要是为了让我们练习,所以题目描述不严谨
$('div[name|=a]') 定义里面就说明了“|=”是为了属性里面带连字符“-”而生的,而且“-”必须跟在“a”后面,所以$('div[name|=a]')是对的,$('div[name|=b]')就错了;
同理,$('div[name~=a]') 没错,“~=”本身也是为了属性中带空格而生的,不过没有位置限制,所以$('div[name~=a]')和$('div[name~=b]')是等价的;
不查找带“-”和空格的元素用$('div[name*=a]')就可以了,这个查找范围最大。
我也是小白,刚看到这里,以上个人理解,嘿嘿~~
同问,我也做不出来