1

我正在尝试从 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 时,我怎么能做到这一点。

4

4 回答 4

2

首先,您的跨度有一个id连接数据项的businessID

<span id="AvgRt_1<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>">

所以 ID 看起来像:你AvgRt_1x在哪里xBusinessID

其次:你没有使用你提到的jQuery。只是纯Javascript。

var averageRatingValue = document.getElementById('AvgRt_1').innerHTML;

第三,id如果您事先知道确切的值,则必须通过硬编码值id或通过变量指定正确的值:

$('#AvgRt_1' + variable).text();
于 2013-10-08T05:41:59.077 回答
2

你为什么不把它<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>放在一个班级里?

然后你可以这样做:

var businessId = '<%#DataBinder.Eval(Container, "DataItem.BusinessID")%>';
$('#AvgRt_1.' + businessId).text();
于 2013-10-08T05:46:14.843 回答
1

你可以简单地得到它,你也可以使用Attribute Starts With Selector [name^="value"]

 $('span[id^="AvgRt_1"]').text() or or $('span').html()

对于粒子跨度

 $('span #SPANID').text()
于 2013-10-08T05:40:39.933 回答
1

你做错了

var averageRatingValue = document.getElementById('AvgRt_1').innerHTML;

因为你没有 idAvgRt_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;
于 2013-10-08T05:43:14.333 回答