Javascript 如何在jQuery中搜索JSON

Javascript 如何在jQuery中搜索JSON,javascript,jquery,json,Javascript,Jquery,Json,你好,我有3个div,包含1,2,3 <div>1</div> <div>2</div> <div>3</div> 我希望当我将鼠标悬停在div上时,检查它们的值 如果DIV包含1显示的FactoreItems“FactoreId:1”:“FactoreItems:a、b、c、d、e”,如果它包含2显示的FactoreItems“FactoreId:2”:“FactoreItems:g、f”等等 您发布的JSON不正确,

你好,我有3个div,包含1,2,3

<div>1</div>
<div>2</div> 
<div>3</div>
我希望当我将鼠标悬停在div上时,检查它们的值


如果DIV包含
1
显示
的FactoreItems“FactoreId:1”:“FactoreItems:a、b、c、d、e”
,如果它包含
2
显示
的FactoreItems“FactoreId:2”:“FactoreItems:g、f”
等等

您发布的JSON不正确,已修复,因此“FactoreId”:num,“FactoreItems”:“string”

HTML

<div>1</div>
<div>2</div>
<div>3</div>

解释

factore:数组是否包含json

$(this).text()-1
返回divs number和-1,因为数组从0开始

factore[$(this).text() - 1] 
// if you mouseover div with text one the result will be factore[0]
// then use .FactoreId to get id value

可能重复?请再详细说明一下这个问题。你所说的“FactoryReid 1 FactoryReitems”是什么意思?另外,如果您使用
div
s发布HTML,也会很有帮助。您是否从其他来源以这种形式获得此JSON?如果该结构是由您创建的,我会将数组更改为对象,将键更改为数字,以便更方便、更高效地访问。是的,我从另一个源获取此JSON,我希望当hover div时,检查div是否包含1,在JSON中,show FactoreId1 FactoreItems。例如,当hover 1 show me(带有警报或其他内容)a、b、c、d,你能告诉我关于('mouseover',function(){$(this).text('FactoreID:+factore[$(this.text()-1.).FactoreID+“FactoreItems”+factore[$(this.text()-1].FactoreItems);)的$('div').on('mouseover',function(){$(this.text()-1.))?注意,这里的逻辑有一个漏洞。您只需在该索引处获取数组中的项,而不是查找“FactoreId”为1的单个项。如果我交换列表,使“FactoreId”3实际上首先在JSON中输出,这将中断,您将在错误的单元格中获得错误的数据。一个更健壮的解决方案是找到合适的数组元素,其中“FactoreId”为1,并返回数组中的该元素。@chsh是的,这是真的,但我不认为有任何理由使用这样的未排序json。是的,你是对的,有一个漏洞,但不是像这样,如果ID没有全部发送出去,它将是未分类的。如果您的ID基于每月的某一天,但我们一次只能检索一周,该怎么办?当我们只有7天的数据时,这个解决方案在本月28日会发生什么?我真的看不出除了这样的示例问题之外,这个解决方案实际可行的情况。那么,一个动态创建的项目列表?它不必连接到任何特殊的东西,您可以拥有一个JSON数组,其中的数据从1到无穷大列出,并且在数组中包含数据。这样地
 //Fixed JSON
 var factore = [{
       "FactoreId": 1, 
       "FactoreItems": "a, b, c, d, e"
   }, {
       "FactoreId": 2,
       "FactoreItems": "g,f"
   }, {
       "FactoreId": 3,
       "FactoreItems": "i, k, h"
   }]
    $('div').on('mouseover', function () {
        $(this).text("FactoreID : "+factore[$(this).text() -1].FactoreId +"FactoreItems"+ factore[$(this).text()-1].FactoreItems);
   });
factore[$(this).text() - 1] 
// if you mouseover div with text one the result will be factore[0]
// then use .FactoreId to get id value