jquery:触发元素方法,仅在父元素中

时间:2013-07-11 14:49:14

标签: jquery

是否有可能这样做?

<div id="search">
<div id="elem"></div>
</div>

<div id="search2">
<div id="elem"></div>
</div>

------这就是我想要做的例子--------

$('#search').ready(function(){//i want to declare parent elem
    $('#elem').html('some');//make all actions what inside that parent elem
});
$('#search2').ready(function(){//i want to declare parent elem2
    $('#elem').html('some2');//make all actions what inside that parent elem
});


//or is it possible only like that:
$('#search #elem').html('some');
$('#search2 #elem').html('some2');

1 个答案:

答案 0 :(得分:1)

让我们从基础开始:首先,你不应该有重复的idthe id attribute should be unique,因此你不应该有这个问题来识别你所指的目标。

其次,jQuery中没有$(element).ready()这样的东西,当整个DOM完全加载并准备好被操作时,会触发ready()方法。

第三,对于您的问题,您可以缩小选择器范围,以确保使用.find()定位特定元素的子元素,如下所示:

HTML

<div id="search">
    <div class="elem"></div>
</div>

<div id="search2">
    <div class="elem"></div>
</div>

JS

 jQuery(document).ready(function($){
     $('#search').on('click', function(){
          $(this).find('.elem').html('some');
     });

     $('#search2').on('click', function(){
          $(this).find('.elem').html('some2');
     });
 });