【发布时间】:2011-01-30 11:09:25
【问题描述】:
$("#button").click(function () {
//debugger;
if ($("img[id=image][src:contains(Grass)]"))
$("img").attr({ src: "/Content/images/Spring.jpg", alt: "Spring" });
else
$("img").attr({ src: "/Content/images/Grass.jpg", alt: "Grass" });
});
<a href="/Content/images/Grass.jpg"><img src="/Content/images/Grass.jpg" alt="image" id="image"/></a>
<input type="button" id="button" name="button"/>
我有带有图像和按钮的简单表单,我希望每个按钮单击图像都得到改变。逻辑很简单。默认情况下image src = /Content/images/Grass.jpg 当我第一次单击按钮时图像被更改,但是当我第二次单击时它不会变回来。我签入调试器并找出条件$("img[id=image][src:contains(Grass)]") 总是true。但是在第一次单击按钮后,它不应该变成假的吗?
如果我声明
var img1 = $("img#image[src:contains(Grass)]");
var img2 = $("img#image[src:contains(Grass2)]");
var img3 = $("img#image[src:contains(blabla)]");
每个 img1.length = 1 img2.length = 1 img3.length = 1 为什么?
但是
var img1 = $("img#image[src*='Grass']");
var img2 = $("img#image[src*='Grass2']");
var img3 = $("img#image[src*='blabla']");
每个 img1.length = 1 img2.length = 0 img3.length = 0 这是预期的。
是不是说明src:contains(text)和src*=text差别这么大?
【问题讨论】:
标签: jquery