如何从jquery获取span的值

时间:2013-10-08 05:39:00

标签: javascript jquery

我试图从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 个答案:

答案 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;