2013-01-07 196 views
1

对于从$.get()返回的数据,我遇到.filter()问题。.filter()返回undefined

$.get(url, function(data){ 
    $(data).filter('[ref=A]').html() // return undefined 
}); 

HTML

<span ref='B'><span ref='A'>abc</span></span> 

如果我做

$(data).filter('[ref=B]').html() // return <span ref='A'>abc</span> 

去除<span ref="B">做后

$(data).filter('[ref=A]').html()// return abc 

我的问题是如何获得的HTML ABC与标签<span ref="B">

我是否错误地使用了filter()?请指教。

+0

只是累了,相同 – Till

+1

对于后来者:嵌套跨度看起来不正确,但事实证明他们是可以接受的:http://stackoverflow.com/questions/1078127/are-nested-span-tags-ok-in-xhtml – mplungjan

回答

5

.filter仅适用于最外面的元素。你想使用.find

此外,最后一个span标记未关闭。

+0

$(data).find('[ref = b]')不工作... – Till

+0

@Till那是因为'.data' *是*'[ref = B]'。 '.find'只适用于后代。 –

+0

@如果我们知道你正在努力达到什么目的,它将会有所帮助。一般问题/理想解决方案是什么? –