我有一个网格,我正在使用JavaScript通过其id选择行的html。
var parentRow1 = document.getElementById('__' + parentrowid).innerHTML;
这将返回以下html:
<td class="rgExpandCol">
<img title="Expand" onclick="$find("")._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> </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,依此类推
答案 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);