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

使用javascript/jquery从特定字符串获取数值,javascript,jquery,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 fa

我有一个网格,我使用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>

2011年6月11日测试我的详细信息
198307
2.
1.
是否有方法获取该部分(数字计数不会是静态的),并获取数字值,然后将其减去1:

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

因此最终结果将是
0
它是2,然后是1,依此类推

因为span本身有一个
id
,您不需要首先从行中获取任何内容:

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

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

在这里,我使用ID选择器获取行,然后使用类选择器查找行中的
lblUCount
span。然后获取单元格的文本,将其转换为数字,然后再次设置单元格的新文本。

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

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

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

var finalCount=parseInt(count) -1 ;
已更新

分配回

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

使用jQuery可以这样做:

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

您可以使用parseInt(),或者如果它比您所说的更复杂,可以使用正则表达式I get parentRow1.find不是一个函数它现在确实返回值,但是如何将值赋回labelIt使用
find
id
没有任何意义,除非您特别希望它不会在父级之外被找到@Sam1:同样,如果您使用的是
id
属性,那么它们在页面上必须是唯一的。我已经尝试了查找解决方案,它确实给了我标签值。但是减去它时会显示:lblUCount.text不是function@Sam1:如果jQuery已正确加载且其他库未使用$,则上述操作正常。
var $el = $('#lblUCount'), 
          val = parseInt($el.text());
val--;
$el.text(val);