我在网上搜索了很多,没有答案。
我想选择一个没有孩子的TD elemet和text =“abc”。我可以同时做其中一个,但不能两个。
我尝试过这样的事情:
$('#MSOPageViewerWebPart_WebPartWPQ1').contents().find('td:not(:has(*)),td:contains("abc")')
提前致谢!
修改 选择是在IFrame中 - 也许这就是问题?
答案 0 :(得分:2)
$('#MSOPageViewerWebPart_WebPartWPQ1 td').filter(function(){
return $(this).children().length === 0 && $(this).text() === 'abc';
});
答案 1 :(得分:1)
试试这个:
$("td(:has(*))").filter(function() {
return $(this).text().indexOf('abc') === 0;
})
答案 2 :(得分:0)
试试这个:
$('#MSOPageViewerWebPart_WebPartWPQ1').find('td:not(:has(*)),td:contains("abc")');
答案 3 :(得分:0)
尝试
$('#MSOPageViewerWebPart_WebPartWPQ1 td:not(:has(*)), #MSOPageViewerWebPart_WebPartWPQ1 td:contains("abc")')
答案 4 :(得分:0)
自定义选择器也可以使用
$.expr[':'].mySelector = function(elem, index, data){
var c = elem.childNodes,len=c.length;
//1- checks that childnodes are NOT element nodes you could opt for (2)
while(len--){
if(c[len].nodeType==1)return false;
}
/*2- checks that childnodes are ONLY text nodes you could opt for (1)
while(len--){
if(c[len].nodeType!=3)return false;
}
*/
return (elem.innerText || elem.textContent).replace(/^\s+|\s+$/,'') == data[3];
};
$(function(){
console.log($('td:mySelector(abc)'));
});