You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何在PHP中用JS修改img的src时出现Uncaught TypeError错误?

错误成因与修复方案

核心错误原因

你碰到的Uncaught TypeError: Cannot set properties of undefined (setting 'src'),本质是JavaScript语法写错了:document.getElementById是函数,必须用**圆括号()**传入元素ID,你代码里误用了方括号[],导致prod1这些变量都取不到DOM元素,变成了undefined,自然没法设置src属性。

错误代码片段

你的JS里获取元素的部分全错了:

// 错误写法,误用方括号
prod1 = document.getElementById["prod1111"];
prod1n = document.getElementById["prod1n"];
prod1q = document.getElementById['prod1q'];
prod1p = document.getElementById['prod1p'];

修复后的完整JS代码

把所有方括号换成圆括号即可,另外顺便修正一个小问题:<a>标签没有src属性,要改成href:

window.onload = init;
function init() {
    var prod1 = document.getElementById("prod1111");
    var prod1n = document.getElementById("prod1n");
    var prod1q = document.getElementById('prod1q');
    var prod1p = document.getElementById('prod1p');
    var tab4 = '<?php echo $tab4 ?>';
    var tab1 = '<?php echo $tab1 ?>';
    var tab2 = '<?php echo $tab2 ?>';
    var tab3 = '<?php echo $tab3 ?>';
    prod1.src = tab4;
    prod1n.setAttribute('href', '#'); // 修正:a标签用href而非src
    prod1n.innerHTML = tab1;
    prod1q.innerHTML = tab2;
    prod1p.innerHTML = tab3;
}

额外注意点

  • 确保PHP部分的$tab4确实能正确输出有效的图片URL路径,避免出现空值或无效路径
  • window.onload确保DOM加载完成后再执行代码,这个逻辑是正确的,无需修改

内容的提问来源于stack exchange,提问作者Rekcan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:05:23