我有以下代码:
<tr>
<td Width="50%" align="left">
<span id="ctl00_lblTotalDesc">Ext. Subtotal</span></td>
<td Width="50%" align="right">
<span id="ctl00_lblTotalValue">100,087,000.00</span></td>
</tr>
我使用以下内容来获取第二个span元素的值:
spanValue = $('#ctl00_lblTotalValue').text();
但这似乎不适用于Spock / Geb。我收到以下错误:
TypeError: $(...).text is not a function
我做错了什么
如果我使用,我会收到以下错误,$('#ctl00_lblTotalValue')
[object HTMLTableElement]
Firefox控制台没用,所以使用Chrome控制台。
在Chrome中:如果我尝试$('#ctl00_lblTotalValue'),我会
<span id="ctl00_lblTotalValue">100,087,000.00</span>
但.text() - 给出了类型错误:对象#没有方法'text'
答案 0 :(得分:1)
似乎你有另一个覆盖$函数的js框架。这意味着你必须使用jQuery('...')。你需要考虑的另一点是,据我所知,在我使用的所有js框架中,$函数都做同样的事情,但有时它会选择第一个匹配的html元素,然后输出如下:
[object HTMLTableElement]
这意味着html对象不是span元素。尝试:
$('#ctl00_lblTotalValue').length
如果结果大于1,则表示您有多个具有相同ID的html元素。
答案 1 :(得分:0)
试试这个:
$("span", id:"ctl00_lblTotalValuee").text()
假设值ct100是常量,并且不是由服务器端应用程序随机生成的。
答案 2 :(得分:-1)
“ctl00_lblTotalValue”是您分配给范围的ID,还是服务器端控件获取环境自动分配的ID?
例如,如果我在.NET aspx页面中有此代码
<div id="pnlHeader" runat="server"></div>
它在html页面中呈现为
<div id="ctl00_pnlHeader"></div>
如果是这种情况,我需要使用此语法
在jquery中获取它$("#<%= pnlHeader.ClientID%>").text()
如果您是服务器端控件,则可能需要使用
获取文本spanValue = $("#<%= lblTotalValue.ClientID%>").text();