使用JSON从数据库中检索不同的ID

玛丽·贝克

我有一个带有空src的HTML img标签,当用户将鼠标悬停在包含img标签的父跨度上时,我使用JSON和jquery从数据库中检索img的src。问题是,当我使用JSON检索src时,一切都很好,并且检索了图像src,但是我在同一页面中为此范围设置了一个循环,因此当已经检索到第一个图像时,它将src应用于另一个循环的范围图片。就像为其他不同的循环图像检索第一张图像的相同ID,这些其他循环图像假定对不同的内容图像内容具有不同的ID。

这是我的代码:

$(document).ready(function(){
    $('#key').hover(function(){
        var id=$('#im').attr('value');
        $.post('getjson.php',{id:id},function(data){
            $('img').attr('src',data.user_img);
        },'json');
    }); 
});

这是HTML

  {loop="data"} <span class="foo" id="key">{$value.user_key}</span> <span class="foo">
  <img alt="ther is an image here" src="" value="{$value.id}" id="im"/></span>
伊斯梅尔·RBOUH

问题是您的页面上有重复的ID。因此,$('#key')总是会返回第一个DIVIDkey的ID ,与相同$('#im')相反,$('img')它将选择页面上的所有图像。这是演示此问题的演示:

console.log("$('#key') count:"+$('#key').length);
console.log("$('#img') count:"+$('#key').length);
console.log("$('img') count:"+$('img').length);

$('#key').hover(function(){
  console.log("ID hovered: "+$('#im').attr('value'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="key"> Div 1
  <img src="" id="im" value="1"  />
</div>
<div id="key"> Div 2
  <img src="" id="im" value="2"  />
</div>
<div id="key"> Div 3
  <img src="" id="im" value="3"  />
</div>
<div id="key"> Div 4
  <img src="" id="im" value="4"  />
</div>

为了解决您需要使用另一个选择器的问题,例如,使用一个类:

$(document).ready(function(){
    $('.my-selector').hover(function(){
        //This will select all images inside 'this' (hovered .key)
        var img = $('img', this);
        $.post('getjson.php',{id : img.attr('value')},function(data){
            img.attr('src',data.user_img);
        },'json');
    }); 
});

HTML:

  {loop="data"} <div class="my-selector"> <!-- add parent div -->
      <span class="foo" id="key">{$value.user_key}</span> 
      <span class="foo">
         <img alt="ther is an image here" src="" value="{$value.id}" id="im"/>
      </span>
 </div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用数据库中的查询检索 ID

如何使用 AngularFire 从 Firebase 数据库中检索 ID

如何使用JDBC从两个不同的MySQL数据库中检索数据?

如何从Firebase数据库中检索不同的项目?

从具有ID值的数据库中检索数据

从MVC中的数据库中检索ID

如何在Codeginter中使用json从数据库中检索数据

如何使用Laravel检索JSON数据并将其存储到数据库中

如何使用Vue.js从已插入的JSON FireBase数据库中检索数据?

如何从数据库中检索当前的产品ID?

使用Dapper无法从数据库检索用户ID

JMSSerializer:使用id从数据库检索相关对象

使用foreach从PHP中的数据库检索数据

使用JPQL从数据库中检索行数据

使用Firebase数据库中的Map检索数据

使用Python从SQL Server数据库中检索数据

如何使用django从mongodb数据库中检索数据?

如何使用yii从phpmyadmin数据库中检索数据

使用laravel从数据库中检索数据

如何使用 URL 从数据库中检索数据

在PHP中使用“ POST”在C#中通过JSON检索数据库信息

无法使用reactFire从数据库检索Firebase JSON

如何使用带有 PDO 的 2 个不同 ID 从数据库中删除数据

如何使用 node.js 从两个不同的数据库系统中检索数据?

如何使用Dapper从数据库中检索单个值

使用Hibernate从数据库中检索元素

使用 LocalDate 从数据库实体中检索

如何使用会话从数据库中检索名字

使用Dapper从数据库中检索XML