0

好的,我有一个 div,我在每个循环中将名称加一。可能有无数个 div,因为它们是新闻循环的一部分

   <?php $i=1; do {?>
 <div id="linkdiv<?php echo $i;?>">
     <div id="divTwo<?php echo $i;?>" style="display: none;"><a href="#">Edit</a></div>
   </div>
  <?php } while($row= mysql_fetch_assoc($rs_query)); ?>

两个 div 都有一条语句,每次循环将数字加一。工作正常!现在我在标题中有一个函数,当您将鼠标悬停在 linkdiv 上时,它会显示 divTwo。

 <script type="text/javascript">
$(function() {
$('#linkdiv').hover(function() { 
    $('#divTwo').show(); 
}, function() { 
    $('#divTwo').hide(); 
});
});
</script>

可以调整此功能以使用我所拥有的功能吗?我尝试在循环中移动函数,但这似乎不起作用

4

5 回答 5

3

您可以使用starts with选择器。尝试以下操作:

选择具有指定属性且其值正好以给定字符串开头的元素。

$('div[id^=linkdiv]').hover(function() { 
    $(this).find('div').show(); 
}, function() { 
    $(this).find('div').hide(); 
});
于 2012-07-23T10:22:37.570 回答
0

未测试

 <script type="text/javascript">
   $(function() {
      $('div[id^="linkdiv"]').hover(function() { 
         $(this).next().show(); 
       }, function() { 
         $('this').next().hide(); 
       });
    });
</script>
于 2012-07-23T10:23:54.137 回答
0

一个更好的方法是给你所有的 div 上课

<div class="linkdiv" id="linkdiv23">...</div>

现在你不需要使用任何诡计 -

$('div.linkdiv').hover(function() { 
    $(this).find('div').show(); 
}, function() { 
    $(this).find('div').hide(); 
});
于 2012-07-23T10:25:09.903 回答
0

ids需要在页面内显式不同......对于相同的使用class属性。

于 2012-07-23T10:23:31.573 回答
0

使用 jquery 对标记进行了更改,更简单和更多选项,您可以使用.linkdiv或特定于所有目标.linkdiv-X,同样适用于.divTwo

  <?php $i=1; do {?>
 <div class="linkdiv linkdiv-<?php echo $i;?>">
     <div class="divTwo divTwo-<?php echo $i;?>" style="display: none;"><a href="#">Edit</a></div>
   </div>
  <?php } while($row= mysql_fetch_assoc($rs_query)); ?>

这应该产生类似的东西

 <div class="linkdiv linkdiv-X">
     <div class="divTwo divTwo-X" style="display: none;"><a href="#">Edit</a></div>
   </div>

和 jquery

$(".linkdiv").hover(function(){
 $(this).find(".divTwo").show();
},function(){
 $(this).find(".divTwo").hide();
});
于 2012-07-23T11:03:08.503 回答