jQuery获取页面strong标签值通过PHP输出时变量未定义如何解决
修复方案
错误根源
你出现报错的核心原因有两个:
- 执行时序冲突:PHP是服务端语言,在页面发送给浏览器之前就已经全部执行完毕,不可能读取到浏览器端后续才运行的JavaScript变量值。
- 变量作用域不匹配:
getnum是定义在jQuery ready回调函数内部的局部变量,你通过PHP输出的独立<script>标签运行在全局作用域,根本访问不到函数内部的局部变量,且独立script的执行时机早于ready回调,变量还没完成初始化就被调用了。
正确实现
你要获取的积分数值本身已经渲染在页面DOM中,不需要混写PHP,直接在JavaScript回调内处理即可:
jQuery(document).ready(function ($) { // 获取strong标签内的内容,去除空格后转成整数 const getnum = parseInt($('div.elementor-widget-container p > strong').text().trim(), 10); // 拿到数值后直接在这里做后续操作即可,比如控制台打印、插入页面其他位置 console.log('获取到的积分数值:', getnum); // 如果需要把数值传给后端PHP处理,走AJAX请求即可,示例: // $.post('后端处理地址', {points: getnum}, function(res) { // 处理返回结果 // }) });
如果你确实需要把积分值输出到页面指定位置,直接操作DOM即可,完全不需要用到document.write(该方法非常不推荐使用),比如要插入到id为point-show的元素中,直接加一行$('#point-show').text(getnum)即可。
内容的提问来源于stack exchange,提问作者namari
相关产品推荐
相关产品推荐

