获取具有特定className的单元格

时间:2014-05-21 09:39:53

标签: javascript jquery

我试图做的是获取类名为" revision_id"的单元格。

<tr>
    <td class="supplierOrderId">10790</td>
    <td class="revision_id">#7</td>
    <td class="supplier">DGI Developpement </td>
    <td class="quantity">80</td>
    <td class="stock">0</td>
    <td class="purchase_price">10.00</td>
    <td class="comments"> </td>
</tr>

我设法这样做了:

revision = this.parentNode.parentNode;
revisionId = revision.cells[1].innerHTML.replace( /[^\d.]/g, '' );

(因为我想得到字符串的int)

iRevisionId = parseInt(revisionId);

使用给定的className有没有更合适的方法呢? 因为如果有人在将来添加一个单元格,我的代码将被弃用&#34;。

希望我已经提供了所有细节,

先谢谢。

// More Details //

大多数答案的问题是它们仅在我有1 <tr>时才有效。一旦我得到多个,它就会获得如下所示的每个版本ID:

console.log(result) -> #1#2#3#4

(如果我有4 <tr>例子)

所以这就是我得到这样的好人的原因: revision = this.parentNode.parentNode; //输出商品<tr>

但在那之后,我无法获得给定的className。

5 个答案:

答案 0 :(得分:1)

如果这是tr

var data = $(this).children(".revision_id").text()

答案 1 :(得分:0)

你可以通过这样的jquery来做:

 var value= parseInt($(".vision_id").text().match(/[0-9]+/g)[0]);

FIDDLE EXAMPLE

答案 2 :(得分:0)

使用text()方法,您可以获取td元素中的文字。 之后,就像使用parseInt()

一样解析它
$(function() {
    var quantity = $('tr td.quantity').text();
    console.log(parseInt(quantity));
});

答案 3 :(得分:0)

取决于您是否可以使用jQuery。

Pure JavaScript

使用纯JS,只要您使用现代浏览器,就可以使用getElementsByClassName功能。出于本演示的目的,我假设您可以在桌面上使用ID。

var myClassName = 'revision_id';
var table = document.getElementById('mytable');
// the desired TD
var td = table.getElementsByClassName( myClassName ) );

请参阅Mozilla's docs on getElementsByClassName

此外,this answer适用于向后兼容性。

的jQuery

当然,使用jQuery会变得更容易:

var $td = $('#mytable td.revision_id');

在这里演示:http://jsfiddle.net/uJB2y/1/

答案 4 :(得分:0)

如果你想用jquery,那么你可以使用.filter()方法:

 var text = $('td').filter(function () {
     return this.className === 'revision_id';
 }).text().slice(1);
 text = +text; // conversion for int
 alert(text);

Demo