Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在jquery中将json文件的一部分作为变量返回_Javascript_Jquery_Json - Fatal编程技术网

Javascript 在jquery中将json文件的一部分作为变量返回

Javascript 在jquery中将json文件的一部分作为变量返回,javascript,jquery,json,Javascript,Jquery,Json,我试图为一个网站创建一个词汇表工具提示,该网站从sitecore创建的json文件中查找关键字。我需要从json文件中获取Text:parts,然后在我的jquery中生成一个变量,这样它们就是找到的关键字,并用适当的标记进行包装。我让它工作到可以让控制台记录我的json文件中有2个条目的程度,但仅此而已 以下是我的示例json代码: [{"Id":"ef339eaa-78e1-4f9e-911e- 096a1920f0b6","Name":"Glossary","DisplayName":"G

我试图为一个网站创建一个词汇表工具提示,该网站从sitecore创建的json文件中查找关键字。我需要从json文件中获取Text:parts,然后在我的jquery中生成一个变量,这样它们就是找到的关键字,并用适当的标记进行包装。我让它工作到可以让控制台记录我的json文件中有2个条目的程度,但仅此而已

以下是我的示例json代码:

[{"Id":"ef339eaa-78e1-4f9e-911e- 096a1920f0b6","Name":"Glossary","DisplayName":"Glossary","TemplateId":"b27d2588-3d02-4f5f-8064-2ee3b7b8eb39","TemplateName":"Glossary","Url":"/Global-Content/Glossary/Glossary","Version":1,"Created":"\/Date(1343987220000)\/","CreatedBy":"sitecore\\rgoodman","Revision":"ae8b3ae0-d0ca-4c4a-9f27-a542a31ab233","Updated":"\/Date(1348137810133)\/","UpdatedBy":"sitecore\\admin","Text":"Glossary","Content":"A bit of test content for the glossary"},{"Id":"3fa51ad4-cfb6-4ff1-a9b5-5276914b2c23","Name":"Abraham","DisplayName":"Abraham","TemplateId":"b27d2588-3d02-4f5f-8064-2ee3b7b8eb39","TemplateName":"Glossary","Url":"/Global-Content/Glossary/A/Abraham","Version":1,"Created":"\/Date(1348148640000)\/","CreatedBy":"sitecore\\admin","Revision":"231284ec-9fb9-4502-ad79-a5806479ecba","Updated":"\/Date(1348148779656)\/","UpdatedBy":"sitecore\\admin","Text":"Abraham","Content":"This is a lincoln person"}]
但我认为这没有任何用处,因为它只是文本:我希望返回的部分

以下是我的jquery:

function getData(url) {
var data;
    $.ajax({
        async: false,
        url: '/_assets/js/glossary.json',
        dataType: 'json',
        success: function(data.Text){
           data.Text = response;
        }
        return(response);
    });
}


function HighlightKeywords(keywords)
{         
var el = $("body");
$(keywords).each(function()
{
    var pattern = new RegExp("(" +this+ ")", ["gi"]);
    var rs = "<mark href='#' class='tooltip'>$1</mark>";
    el.html(el.html().replace(pattern, rs));
});
}        

HighlightKeywords(data.Text);
本质上,我需要返回文本:位json,其中数据位于HighlightKerywords函数中。我哪里做错了


任何帮助都将不胜感激。谢谢

您的函数语法格式不正确。您的返回必须位于同步示例中的success函数内部,而不是随机放置在ajax对象中

function getData() {
    $.ajax({
        async: false,
        url: '/_assets/js/glossary.json',
        dataType: 'json',
        success: function(data){
           //HighlightKeywords(data.Text);
           //or
           return(data.Text);
        }

    });
}

函数的语法格式不正确。您的返回必须位于同步示例中的success函数内部,而不是随机放置在ajax对象中

function getData() {
    $.ajax({
        async: false,
        url: '/_assets/js/glossary.json',
        dataType: 'json',
        success: function(data){
           //HighlightKeywords(data.Text);
           //or
           return(data.Text);
        }

    });
}

Ajax是异步通信,您不能将其响应插入到全局变量中并期望能够使用它

您需要对success函数中的data.text执行所有操作

success: function(response){
           HighlightKeywords(response.Text);
        }

Ajax是异步通信,您不能将其响应插入到全局变量中并期望能够使用它

您需要对success函数中的data.text执行所有操作

success: function(response){
           HighlightKeywords(response.Text);
        }

他已将async设置为false。这并不会真正改变你的答案,但ajax并不总是异步的。他将async设置为false。这并不会真正改变您的答案,但ajax并不总是异步的。