jQuery使用Property查找元素

时间:2012-02-03 22:43:27

标签: jquery

我正在使用jquery来查找表中的一些元素。问题是我可能不知道元素的类型。这意味着元素可以是简单的TD或SELECT。但由于两者都有与之关联的文本,因此我想检索元素,如果它具有text属性。

$($(rows[i]).find("element that has property text")[0]).text();

更新1:我更新了代码,td文本节点有一个值,但currentRow.triggerType返回为空。

currentRow.triggerType = $($(rows[i]).find('td')[0]).filter(function() {
            return this.nodeType == 3; 
        }).text();

4 个答案:

答案 0 :(得分:1)

您可以应用自定义过滤器功能 - 在以下示例中,我们将结果集缩减为包含文本节点的项目(nodeType == 3

$('td').filter(function() {
    return this.nodeType == 3;
}).text()

更新

你的选择器应该是

$(rows[i]).find('td').first().filter(...

答案 1 :(得分:0)

我真的不明白这个问题,但这会有用吗?

$(rows[i]).filter(function(){
  return $(this).text() !== '';
}).text();

你也可以试试这个:

$(rows[i]).not(':empty').text();

答案 2 :(得分:0)

您在寻找包含选择器吗?

http://jsfiddle.net/W9EMM/

答案 3 :(得分:0)

目前还不清楚你想对这些值做些什么,但这里有一些方法可以获得它们;

$('td:first, select').each(function() {
    var text = $(this).val() || $(this).text();
    console.log(text);
});

如果某些td元素包含select个元素;

$('td').each(function() {
    var $this = $(this),
        $select = $this.find('select:first'),
        text

    text = ($select.length == 0) ? $this.text() : $select.val();
    console.log(text);
});