javascript - 更改图像 src 以实现展开/折叠功能(JQ 或 JS)

标签 javascript jquery html

我已经尝试了在此网站上找到的几种方法来让我的脚本更改“+”和“-”展开/折叠按钮图像,但我还没有找到合适的修复/方法。

目前,我使用纯 JS 如下:

function swapimg(id) {
if(document.getElementById(id).src='images/bullet_expand.png')
{document.getElementById(id).src='images/bullet_expanded.png'}
else {document.getElementById(id).src='images/bullet_expand.png'}
}

和按钮:

<a href="javascript:void();" onclick="toggle_visibility('item1'); swapimg('phb');">
<img src="images/bullet_expand.png" border="0" style="padding-right: 5px;" id="phb" alt="">
</a>

第一次单击确实会更改图像,但第二次单击不会执行任何操作。我感觉使用“getElementById”可能不是标准调用,因此使用 JQuery 也是我会考虑的一个选项。

最佳答案

您需要 == 而不是 =

,而不是比较您正在分配的值

而不是这个:

document.getElementById(id).src='images/bullet_expand.png'

使用

document.getElementById(id).src=='images/bullet_expand.png'

jQuery:

if(jQuery('#'+id).attr('src') == 'images/bullet_expand.png') {
   jQuery('#'+id).attr('src','images/bullet_expanded.png');
} else {
   jQuery('#'+id).attr('src','images/bullet_expand.png');
}

Javascript:

if(document.getElementById(id).src.indexOf('/images/bullet_expand.png') > 0) {
    document.getElementById(id).src='images/bullet_expanded.png';
}
else {
    document.getElementById(id).src='images/bullet_expand.png';
}

关于javascript - 更改图像 src 以实现展开/折叠功能(JQ 或 JS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10854648/

相关文章:

html - 仅使用 CSS 选择选中的单选按钮的嵌套元素

javascript - React Recharts——从不同对象获取数据

javascript - 为什么 Javascript 中的变量赋值运算符优先级会以其他方式工作

javascript - 如何从 Mongo 中的数组中删除元素

javascript - 如何将文本重新格式化为不同的模式?

html - 滚动可见溢出

javascript - 您可以将 javascript 函数名称设置为 html 属性吗?

javascript - 如何在悬停时将背景颜色应用于多个元素?

jquery - 带有 Superfish 的 CSS - 菜单有效但箭头不显示

javascript - 如何在 :hover? 上找到元素的颜色