我试图从jquery获取span的值,但它显示了像这样的错误
TypeError: document.getElementById(...) is null
http://localhost:10489/YellowPages/YellowPageHome.aspx?Menu=menu_cat_3594
Line 328
我有这样的跨度
<div class="RatingAggregate" style="height: 25px; width: 25px; margin: 5px;">
<span id="AvgRt_1<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>">
<%#DataBinder.Eval(Container, "DataItem.Rating")%></span>
</div>
我希望像这样得到span的值
var averageRatingValue = document.getElementById('AvgRt_1').innerHTML;
但显示空错误。我可以这样做,因为我正在努力学习jquery。
答案 0 :(得分:2)
首先,您的范围有一个id
,用于连接数据项的businessID
:
<span id="AvgRt_1<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>">
因此ID似乎如下:AvgRt_1x
其中x
是您的BusinessID
其次:你没有像你提到的那样使用jQuery。只是纯粹的Javascript。
var averageRatingValue = document.getElementById('AvgRt_1').innerHTML;
第三,如果您事先知道确切的id
,或者通过变量,则必须通过硬编码值指定正确的id
:
$('#AvgRt_1' + variable).text();
答案 1 :(得分:2)
为什么不把<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>
放在类中?
然后你可以这样做:
var businessId = '<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>';
$('#AvgRt_1.' + businessId).text();
答案 2 :(得分:1)
您可以简单地使用它,您也可以使用Attribute Starts With Selector [name^="value"]
$('span[id^="AvgRt_1"]').text() or or $('span').html()
For Particulr span
$('span #SPANID').text()
答案 3 :(得分:1)
你的确错了
var averageRatingValue = document.getElementById('AvgRt_1').innerHTML;
因为您没有身份AvgRt_1
,但它是AvgRt_1<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>
所以,试试这个jquery:
var averageRatingValue = $('span [id^=AvgRt_1]').html();
使用javascript:
//define var for that
var spanId = '<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>';
var averageRatingValue = document.getElementById('AvgRt_1' + spanId).innerHTML;