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 ");

});

倒霉,但它什么都不做。

脚本找不到div#counter. 如何得到它?

html看起来像

<div id="slider"><ul class="slider" /></div>
4

4 回答 4

1

试试这个,

与以前

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

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

或使用滑块的父级

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

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

直接带id

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

    $('#counter').text(" TEST ");
});
于 2012-09-27T16:06:32.663 回答
1

您使用它的方式before是将其ul.slider作为同级添加到包含div#counter. 您可以通过检查其共同父级来选择滑块:

$('a').click(function(){
  $('#slider').parent().find('#counter').text(" TEST ");
});
于 2012-09-27T16:08:52.137 回答
1

写吧$('#counter').text(" TEST ")

我也认为你需要绑定你的链接标签,如下所示,

$('a', $('ul.slider')).click (function () {
    $('#counter').text(" TEST ")
});
于 2012-09-27T16:08:59.310 回答
1

首先,您通过类名引用滑块.slider,稍后您通过 id 引用它#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 ");
});​
于 2012-09-27T16:11:04.133 回答