javascript - jQuery 未捕获类型错误 : Cannot read property 'text' of null

标签 javascript jquery html asp.net ajax

问题:我正在从 ajax 调用加载模态表单。在模式中,我有一个包含电子邮件地址的 span 元素。我需要在 javascript 中捕获 span 元素的值。目前,我有一个按钮点击调用一个函数来获取文本。

读取文本的代码: function AccountHistoryRedeemSendEmail(emailType) { clearNotifications(); console.log('Hit AccountHistoryRedeemSendEmail'); var url = "../../utility/account/ajaxAccountHistoryRedeemSendEmail.aspx"; var params = "eType" + emailType; //console.log($('#lblHRedeemEmailAddress')); console.log('Output text: ' + $('#lblHRedeemEmailAddress').text()); params += "&HRedeemEmailAddress=" + $("#lblHRedeemEmailAddress").text(); params += "&timestamp=" + new Date(); // new Ajax.Request( // url, // { // method: "get", // parameters: params, // onSuccess: parseAjaxResponseAccountHistoryRedeemSendEmail // } // ); }

返回的错误是:“Uncaught TypeError: Cannot read property 'text' of null”

我知道错误告诉我 $('#lblHRedeemEmailAddress') 正在返回一个空值。当然,我已经验证了我的元素名称是正确的。我还检查了 chrome 中的元素并验证它存在于文档中。这是文档中的 html:

<span id="lblHRedeemEmailAddress">name@domain.com</span>

< img src="sendemail.jpg" id="SendEmail" alt="Email Certificate" onclick="AccountHistoryRedeemSendEmail('lblEmail');">

所以,问题是:当我尝试从函数访问它时,为什么我的 lblHRedeemEmailAddress 元素为空?还有,我该如何解决这个问题?

最佳答案

如果 lblHRedeemEmailAddress 不存在,jQuery 将返回一个空结果集,您仍然可以根据它调用 text$ 可能指的是其他一些库,例如 prototype .

继续阅读 noConflict或者创建一个闭包,其中 $ 设置为 jQuery:

(function($) {
   // for anything in here, $ will be jQuery
})(jQuery);

关于javascript - jQuery 未捕获类型错误 : Cannot read property 'text' of null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26547324/

相关文章:

javascript - 如何判断点击了哪张图片

javascript - Twitter Bootstrap 关闭按钮不起作用

javascript - 添加了图标外观的图像

javascript - 我的 Express 服务器无法识别中间件功能

javascript - 将全局变量传递到函数的范围

javascript - 检测对 HTML5 &lt;input form =""> 属性的支持

javascript - 如何防止 jQuery prepend() 删除 HTML?

javascript - 如何使用 Javascript 查找和定位最近的类?

Javascript + 区分用户点击和从函数发送的点击

javascript - 如何根据开始和结束时间值创建动态表?