2012-09-27 58 views
0

源的例子是那種該如何獲取在方法之前附加的元素?

// block with caption 
var caption_block = "<div class='caption-block'><h1>"+ options.title + "</h1><div class='pages'><a href='/' id='left_pg'></a><div id='counter'>"+ (i+1)+'/'+(elms+1)+"</div><a href='/' id='right_pg'></a></div></div>"; 

// put the elemnt with caption into the DOM 
$('ul.slider').before(caption_block); 

// by click in #counter TEST 
$('a').bind('click',function(){ 

$('#slider').find('#counter').text(" TEST "); 

}); 

Unluck,但它沒有做任何事情。

該腳本找不到div#counter。如何得到它?

的HTML看起來像

<div id="slider"><ul class="slider" /></div> 
+0

我甚至不知道哪個anwser更好 –

回答

1

你使用它的方式,before是增加ul.slider作爲同級含div#counter標題塊。你可以通過檢查其相互父母爲它選擇滑塊:

$('a').click(function(){ 
    $('#slider').parent().find('#counter').text(" TEST "); 
}); 
+0

謝謝,這是解決方案! –

+0

只需'$('#counter').text(「TEST」);'應該可以工作。 –

+0

是的,謝謝,我的腳本中可能有錯,現在它完美的工作! –

1

試試這個,

採用滑蓋

$('a').click(function(){ 

    $('#slider').parent.find('#counter').text(" TEST "); 
}); 

以前

$('a').click(function(){ 

    $('#slider').prev('div').find('#counter').text(" TEST "); 
}); 

或使用家長直接與ID

$('a').click(function(){ 

    $('#counter').text(" TEST "); 
}); 
+0

對不起,我打字了,就出來看看。 –

+0

好吧,更新我的回答 – Adil

1

只要寫$('#counter').text(" TEST ")

也是我認爲你需要綁定你鏈接標籤像下面,

$('a', $('ul.slider')).click (function() { 
    $('#counter').text(" TEST ") 
}); 
1

首先,你」通過類名稱.slider重新引用滑塊,稍後通過編號#slider引用它。

其次,你不'具有ID'a'#a錨點,你可能想使用$('a')引用錨元素。

第三,您的選擇器正在尋找#counter滑塊內部,它不是孩子的。它被插入在滑塊之前,而不是作爲一個孩子。

看到這個搗鼓一些工作代碼http://jsfiddle.net/DyexP/2/

<ul id="slider" class="slider">ul</ul>​ 

var i = 1; 
var elms = 10; 
var options = {}; 
options.title = "title"; 

// block with caption 
var caption_block = "<div class='caption-block'><h1>"+ options.title + "</h1><div class='pages'><a href='/' id='left_pg'></a><div id='counter'>"+ (i+1)+'/'+(elms+1)+"</div><a href='#' id='right_pg'>click me</a></div></div>"; 

// put the elemnt with caption into the DOM 
$('ul.slider').before(caption_block); 

// by click in #counter TEST 
$('a').click(function(){ 
    $('#slider').parent().find('#counter').text(" TEST "); 
});​