我正在使用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();
答案 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)
您在寻找包含选择器吗?
答案 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);
});