2012-08-01 111 views
0

嗨在这里我有一个数组变量链接。我必须动态添加keywordslabel的值。你如何添加这个?谢谢在数组中添加一个动态变量到一个jQuery函数

更新

MyIssue我需要添加(推)的关键字和标签值动态地在阵自动完成。这个怎么做?是(前提是你知道的关键字数组的索引)

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="utf-8"> 
    <title>jQuery UI Autocomplete - Default functionality</title> 
    <link rel="stylesheet" href="http://jqueryui.com/themes/base/jquery.ui.all.css"> 
    <script type="text/javascript" charset="utf-8" src="../js/cordova-1.7.0.js"></script> 
<script type="text/javascript" charset="utf-8" src="../js/jquery-1.7.2.js"></script> 

    <script src="http://jqueryui.com/ui/jquery.ui.core.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.widget.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.position.js"></script> 
    <script src="http://jqueryui.com/ui/jquery.ui.autocomplete.js"></script> 
    <link rel="stylesheet" href="http://jqueryui.com/demos/demos.css"> 
    <script> 
    $(function() { 
     var links = [ 
     { 
      keywords: ['create', 'add', 'make', 'insert', 'user'], 
      label: "Create user", 
      //desc: "Create a user in the system", 
      //url: 'http://mysite.com/user/create/' 
     }, 
     { 
      keywords: ['create', 'add', 'make', 'insert', 'organisation'], 
      label: "Create organisation", 
      // desc: "Create an organisation in the system", 
      // url: 'http://mysite.com/organisation/create/' 
     }]; 
     $("#tags").autocomplete({ 

      source: function(request, response) { 
      var matched = []; 

     for (var k = 0; k < links.length; k++) { 
      if (checkSearchWordsMatchKeywords(request.term, links[k]['keywords'])) { 
       matched.push(links[k]); 
      } 
     } 
     // display the filtered results 
     response(matched); 

      } 
     }); 

     function checkSearchWordsMatchKeywords(searchWords, keywords) 
     { 
      var searchWords = searchWords.toLowerCase(); // Lowercase the search words 
      var searchWords = searchWords.split(' ');  // Break up the search into separate words 
      var numOfSearchWords = searchWords.length;  // Count number of search words 
      var numOfKeywords = keywords.length;   // Count the number of keywords 
      var matches = [];        // Will contain the keywords that matched the search words 

      // For each search word look up the keywords array to see if the search word partially matches the keyword 
      for (var i = 0; i < numOfSearchWords; i++) 
      { 
       // For each keyword 
       for (var j = 0; j < numOfKeywords; j++) 
       { 
        // Check search word is part of a keyword 
        if (keywords[j].indexOf(searchWords[i]) != -1) 
        { 
         // Found match, store match, then look for next search word 
         matches.push(keywords[j]); 
         break; 
        } 
       } 
      } 
      if (matches.length == numOfSearchWords) 
      { 

       return true; 
      } 
      } 

    }); 
    </script> 
</head> 
<body> 

<div class="demo"> 

<div class="ui-widget"> 
    <label for="tags">Tags: </label> 
    <input id="tags" /> 
</div> 

</div><!-- End demo --> 

</body> 
</html> 
+0

我需要为关键字和标签动态添加值 – JavaH 2012-08-01 12:49:29

+0

您如何准确确定要将值添加到哪个关键字数组? – AdityaParab 2012-08-01 12:50:24

+0

我在关键字和标签的数据库中有一些价值。是否可以添加值? – JavaH 2012-08-01 12:53:09

回答

1

常规方式,

links[index].keywords[links[index].keywords.length] = "your new value"; 

links[index].label = "your new label value"; 

让我们知道你如何确定index值,这样我们就可以以更具体的方式帮助你:)

+0

谢谢你的回复...索引从零开始,链接[index] .keywords [links [index] .keywords.length] =“你的新值”;我不明白这一行 – JavaH 2012-08-01 12:57:19

+0

它就像'links [index] .keywords'将选择关键字数组...'links [index] .keywords [links [index]。关键字.length]'会给你选定数组的长度。如果该关键字数组在最后添加新元素... – AdityaParab 2012-08-02 07:41:46

2

添加新标签

newLabel = { "keywords":[], "label":"Empty Label" }; 
links.push(newLabel); 

添加关键字,则需要通过链接阵列

$(links).each(function(){ if(this["label"] = "Empty Label") { this["keywords"].push("newKeyword") } });  

上面的代码正在考虑要添加到“空标签”的关键字进行迭代标签

0

套装将键和标签作为变量,然后将键添加到阵列中的标签索引中:

var links = new Array(); 
var keys = ['create', 'add', 'make', 'insert', 'user']; 
var label = "Create user"; 

links[label] = keys; 

alert(links["Create user"]); 

该提醒:create,add,make,insert,user