使用javascript/jquery从特定字符串中获取数值

Zak*_*aki 0 javascript jquery

我有一个网格,我正在使用JavaScript通过其id选择行的html.

var parentRow1 = document.getElementById('__' + parentrowid).innerHTML; 
Run Code Online (Sandbox Code Playgroud)

这将返回以下html:

<td class="rgExpandCol">
<img title="Expand" onclick="$find(&quot;&quot;)._toggleExpand(this, event); return false;" 
src=" style="border-width:0px;"></td><td>TEST</td><td>my details</td><td>1</td><td>01/06/2011</td>
<td>198307</td>
<td>&nbsp;</td>
<td>
<span id="lblDCount">2</span>
</td>
<td>
<span id="lblUCount">1</span>
</td>
<td>
<input name="$btn" id="btn">
</td>
Run Code Online (Sandbox Code Playgroud)

有没有办法获得这部分(数字计数不会是静态的),并获得数字值然后减去一个:

<span id="lblUCount">1</span>
Run Code Online (Sandbox Code Playgroud)

所以最终结果将<span id="lblUCount">0</span>是2然后是1,依此类推

T.J*_*der 5

由于span本身有一个id,你不需要先从行中获取任何内容:

var lblUCount = $("#lblUCount");
lblUCount.text(parseInt(lblUCount.text(), 10) - 1);
Run Code Online (Sandbox Code Playgroud)

但我怀疑你有多行,因此有多个副本span.如果我是对的,那么您的HTML无效,因为页面上的id必须是唯一的.所以我要改变它,所以你给那些跨度类代替:

<span class="lblUCount">1</span>
Run Code Online (Sandbox Code Playgroud)

......这意味着你需要与该行开始,然后用find找到它:

var lblUCount = $('#__' + parentrowid).find('.lblUCount');
lblUCount.text(parseInt(lblUCount.text(), 10) - 1);
Run Code Online (Sandbox Code Playgroud)

我正在使用$ID选择器来获取行,然后find使用类选择器来查找lblUCount行中的跨度.然后text获取单元格的文本,parseInt将其转换为数字,然后text再次设置单元格的新文本.