0

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

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

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

所以最终结果将是<span id="lblUCount">0</span>它是 2 然后是 1 等等

4

4 回答 4

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再次设置单元格的新文本。

于 2013-01-03T10:42:07.483 回答
2

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

$('#lblUCount').text(function(idx, text) {
    return parseInt(text, 10) - 1;
});
于 2013-01-03T10:42:27.993 回答
2

试试这个

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

var finalCount=parseInt(count) -1 ;

更新

分配回来..

$('#__' + parentrowid).find('#lblUCount').text(finalCount);
于 2013-01-03T10:44:12.877 回答
0

你可以像这样使用 jQuery 来做到这一点:

var $el = $('#lblUCount'), 
          val = parseInt($el.text());
val--;
$el.text(val);
于 2013-01-03T10:44:14.423 回答