Javascript XML使用jQuery删除文本不等于的元素
以下是我的Xml示例:Javascript XML使用jQuery删除文本不等于的元素,javascript,jquery,xml,Javascript,Jquery,Xml,以下是我的Xml示例: <?xml version='1.0'?> <rss version="2.0"> <channel> <title>Some Title</title> <pubDate>1/1/17 00:00:00</pubDate> <generator>SomeOne</generator> <
<?xml version='1.0'?>
<rss version="2.0">
<channel>
<title>Some Title</title>
<pubDate>1/1/17 00:00:00</pubDate>
<generator>SomeOne</generator>
<item>
<title>
Some Item Title
</title>
<link>http://example.org</link>
<description>
Lorem ipsum ...
</description>
<pubDate>1/1/17 00:00:00</pubDate>
<category>Cat1</category>
<category>Cat2</category>
</item>
....
....
....
</channel>
</rss>
没有错误,但它返回空(在控制台中),并且也不执行任何操作。问题是因为您在另一个
find()
中使用了:而不是,这将无法工作,因为您已经处于类别
元素的级别。没有孩子可供过滤。您需要合并这两个选择器。以下任何一项都有效:
/#1
var myCat='Cat1';
rss.find('item').find('category:not(:contains('+myCat+'))).parent().remove();
// #2
var myCat='Cat1';
rss.find('item').find('category').filter(':not(:contains('+myCat+')))).parent().remove();
// #3
var myCat='Cat1';
find('item:has(category:not(:contains('+myCat+'))))).remove();
// #4
var myCat='Cat1';
rss.find('item').find('category').not(':contains('+myCat+'))).parent().remove();
可能还有更多,但希望你能理解
var myCat = 'Cat1';
rss.find('item').find('category').find(':not(:contains('+ myCat +'))').parent().remove();