$("#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
. Но после первого нажатия кнопки не должно получиться false?jQuery кнопка нажмите изменить изображение
если я объявляю
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, тогда этот ответ даст вам то, что вам нужно. –
Не работает, я смотрю в debug, в обоих случаях ($ ("img [id = image] [src: contains (Grass)]"). Length и $ ("img [id = image] [src: contains (Spring)] ").) В то же время я получаю длину, равную 1 – Reg
@ Джейсон ЛеБрун Я просто экспериментирую, но каков лучший способ сделать это? – Reg