2013-03-23 216 views
0

我正在使用var slide=($('#accommodation-flexslider li').get(currentSlide));。这让我下面的HTML:如何通过.get()获取父元素一次获取元素

<li> 
    <article> 
     <img src="http://localhost/..."> 
     <div class="flex-caption"> 
     <h1 class="caption-heading">Patio </h1> 
       <p class="caption-description">Enclosed patio...</p> 
     </div> 
    </article> 
</li> 

什么是jQuery来使用我var slide然后得到的caption-headingcaption-description的文本?

我有过这些类的12,所以我只需要我已经使用检索到的我的一个变量currentSlide

回答

2

因为你使用.get(),幻灯片VAR将是一个DOM元素,而不是一个jQuery对象。所以你不能直接调用.find(),就像其他答案一样。但jQuery选择,与上下文的语法将工作:

var caption-heading = $("h1.caption-heading", slide).text(); 

或者,你可以使用.eq()代替.get()learn more),使滑块是一个jQuery对象:

var slide = $('#accommodation-flexslider li').eq(currentSlide); 
var caption-heading = slide.find("h1.caption-heading").text(); 
1

可以使用Jquery .text()用于获取文本

$('caption-heading').text() 

要找到你特定元素可以使用Jquery find()

slide.find("h1.caption-heading").text(); 
0

只需使用find

slide.find('caption-heading').text() 
1

使用幻灯片变量:

(注意,如果幻灯片是DOM元素,而不是一个jQuery对象,你要做的不是$(slide).find()...

var caption-heading = slide.find("h1.caption-heading").text(); 
var caption-description = slide.find("p.caption-description").text(); 

或像在评论中提到@tcovo你可以使用上下文选择器来做到这一点:

var caption-heading = $("h1.caption-heading", slide).text(); 
var caption-description = $("p.caption-description", slide).text(); 

如果滑块元素有多个标题,你可以使用.eq()函数检索你想要的。比方说,它有3 h1.caption-标题元素,您可以执行以下操作来获得第二个:

var caption-description = slide.find("h1.caption-heading").eq(1).text(); 
+2

另一种语法是带有上下文的jQuery选择器:'$(“h1.caption-heading”,slide).text();'。在这种形式下,'slide'不一定是jQuery对象,它可以是一个DOM元素。 – tcovo 2013-03-23 15:08:01

+0

这上面alt语法为我工作 – Nicola 2013-03-23 15:12:54

+0

.find没有工作,我认为这就像上面说的人,这是一个DOM元素,而不是一个jQuery对象 – Nicola 2013-03-23 15:16:12