这段代码有什么问题?我想根据条件将一个 var cafe = "cafenew"
替换为另一个......
jQuery(我认为主要问题是在if条件中,也许它不能识别img
):
this.src
HTML:
$(document).ready() {
$("#firstdiv img").replaceWith(function () {
if(this.src.IndexOf("soccer2") > -1) {
return $("<img src='/images/soccer ball.jpg'/>")
}
})
}
答案 0 :(得分:3)
OP代码中的replaceWith
仅在满足条件时返回,否则默认情况下将返回undefined
,并且将从DOM中删除图像元素。
另请注意,IndexOf
应为indexOf
(小写i
)
这是demo非工作代码。
虽然如果条件是假的,可以通过返回相同的元素来解决问题。
$("#firstdiv img").replaceWith(function () {
if(this.src.indexOf("soccer2") > -1) {
return $("<img src='/images/soccer ball.jpg'/>")
}
// else, return the same element
return this.outerHTML;
});
更好的方法是使用属性包含选择器
$('#firstdiv img[src*="soccer2"]').replaceWith('<img src="/images/soccer ball.jpg"/>');
答案 1 :(得分:1)
IndexOf
中有拼写错误。它应该是:indexOf
$(document).ready(function() {
$("#firstdiv img").replaceWith(function () {
if (this.src.indexOf("soccer2") > -1) {
return $("<img src='/images/soccer ball.jpg' alt='replace one' />");
}
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="firstdiv" class="divvv">
<img src="/images/Soccer.jpg" width="60" height="60" alt="soccer icon" />
<img src="/images/soccer2.jpg" alt="soccer icon" width="60" height="60" />
</div>
&#13;