javascript - 使用 javascript 更改包含图像的按钮文本 - 使用转义单引号
问题描述
我有一个带有以下 HTML 代码的按钮,它在首次运行时可以正常工作:
<button type='button' class='btn-success chbtn' id ='basketbutton'>Click to see basket <img class='btnbasket' src='images/cart.png' alt='Cart'/> ".$basketnumber." items</button>
$basketnumber 来自一个 XMLHttpRequest 请求,其中包含数据库中的当前购物篮总数。
如果给我一个我想要的按钮,并带有一条消息“单击以查看购物篮”,并带有购物车和“X 商品”的图像。
在将商品添加到购物车、更新数据库等之后,我正在更新网页元素以包含新购买。
该网页是使用 php 构建的,并在标题的脚本标签中插入一个 js 函数以更新元素并具有以下行(在 php 中):
document.getElementById('basketbutton').innerHTML= 'Click to see basket <img class='btnbasket' src='images/White shopping cart.png' alt='Cart'/> ' +obj.baskettotal+ ' items';
obj.baskettotal 来自 XMLHttpRequest 请求,当前购物篮总数来自数据库
这不起作用。控制台告诉我“未捕获的 ReferenceError:[js 函数] 未在 HTMLButtonElement.onclick 中定义”
当我删除图像参考时:
document.getElementById('basketbutton').innerHTML= 'Click to see basket ' +obj.baskettotal+ ' items';
一切都很好。
我认为这是我使用单引号和包含它们的 img 引用的方式,这使事情变得混乱。定义文本的双引号不存在,我需要在 php 中定义它们,以便正确构建脚本。
我曾尝试 "
在 php 代码中使用 HTML 代码,但这没有任何作用,也没有作为双引号出现(它仍然"
在 jS 函数中的 HTML 页面上)并且错误仍然发生。
我试过使用.innertext
但.textcontent
无济于事
我希望有人能在正确的方向上帮助我
解决方案
正如@ADyson 所建议的那样,转义正确的单引号对我有用:)
document.getElementById('basketbutton').innerHTML= 'Click to see basket <img class=\'btnbasket\' src=\'images/White shopping cart.png\' alt=\'Cart\'/> ' +obj.baskettotal+ ' items';
非常感谢您的指点。我首先犯了一个错误,即在 XMLHttpRequest 请求响应(obj.baskettotal)周围转义引号,这应该作为文本而不是值!
推荐阅读
- visual-studio-code - VSCode 中 Electron DevTools 中的开源文件
- transactions - 有没有办法解决 DynamoDB 中的事务项限制?
- json - 将变量传递给 aws cli 内联 json
- python - 在 html 表中获取特定 td 属性的最佳方法是什么?
- excel - 在 Application.OnTime 中运行命名宏会生成“此工作簿中的宏可能不可用”
- java - What is the internal process behind that error "variable Y not initialized in the default constructor" in java?
- ios - 无法使用 CocoaPods 安装领域
- mysql - TypeORM - MYSQL - @OneToOne 注解
- c++ - 我正在玩 CoinToss 游戏,但我不知道我的错误在哪里
- reactjs - SCSS/SASS 中的 FontAwesome 显示正方形