问题:我正在从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 += "×tamp=" + new Date(); // new Ajax.Request( // url, // { // method: "get", // parameters: params, // onSuccess: parseAjaxResponseAccountHistoryRedeemSendEmail // } // ); }
返回的错误是:“未捕获的TypeError:无法读取null的属性'text'”
我知道错误告诉我 $('#lblHRedeemEmailAddress')
返回空值。自然,我已经验证了我的元素名称正确。我还检查了铬元素,并验证了该元素是否存在于文档中。这是文档中的html:
<span id="lblHRedeemEmailAddress">[email protected]</span>
< img src="sendemail.jpg" id="SendEmail" alt="Email Certificate" onclick="AccountHistoryRedeemSendEmail('lblEmail');">
所以,问题是:当我尝试从函数访问lblHRedeemEmailAddress元素时,为什么它为null?而且,我该如何解决?
最佳答案
如果lblHRedeemEmailAddress
不存在,jQuery将返回一个空结果集,您仍然可以在该结果集上调用text
。 $
可能是指其他一些库,例如prototype。
阅读noConflict
或创建$
设置为jQuery
的闭包:
(function($) {
// for anything in here, $ will be jQuery
})(jQuery);