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

时间:2013-01-03 10:40:19

标签: javascript jquery

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

var parentRow1 = document.getElementById('__' + parentrowid).innerHTML; 

这将返回以下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>

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

<span id="lblUCount">1</span>

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

4 个答案:

答案 0 :(得分:5)

由于跨度本身有id,因此您无需先从该行获取任何内容:

var lblUCount = $("#lblUCount");
lblUCount.text(parseInt(lblUCount.text(), 10) - 1);
但是,我怀疑你有多行,因此有span的多个副本。如果我是对的,那么您的HTML无效,因为id必须在页面上是唯一的。所以我要改变它,所以你改为给那些跨度类:

<span class="lblUCount">1</span>

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

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

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

答案 1 :(得分:2)

这是AFAIK最简单的解决方案。它依赖于.text()的“function”参数版本,它将原始文本传递给提供的函数,然后将返回值重新插入元素中。

$('#lblUCount').text(function(idx, text) {
    return parseInt(text, 10) - 1;
});

答案 2 :(得分:2)

试试这个

var count=$('#__' + parentrowid).find('#lblUCount').text();

var finalCount=parseInt(count) -1 ;

<强>更新

将其分配回来..

$('#__' + parentrowid).find('#lblUCount').text(finalCount);

答案 3 :(得分:0)

您可以使用jQuery这样做:

var $el = $('#lblUCount'), 
          val = parseInt($el.text());
val--;
$el.text(val);