0
<!doctype html>
<html>
<head>
  <title>jQuery Tagit Demo Page (HTML)</title>
  <script src="demo/js/jquery.1.7.2.min.js"></script>
  <script src="demo/js/jquery-ui.1.8.20.min.js"></script>
  <script src="js/tagit.js"></script>

  <link href="demo/css/demo.css" rel="stylesheet" type="text/css"/>
  <link rel="stylesheet" type="text/css" href="css/tagit-stylish-yellow.css">

  <script>


    $(document).ready(function () {


    var list = new Array();
     var availableTags = [];

     $('#demo2').tagit({tagSource:availableTags});


     $('#demo2GetTags').click(function () {
        showTags($('#demo2').tagit('tags'))
      });

     /*
    $('li[data-value]').each(function(){
        alert($(this).data("value"));
    });*/

    function showTags(tags) {

        var list = new Array();
        console.log(tags);
        var string;
        for (var i in tags)
          string +=    new String(tags[i].value)

            console.log(string);
        }


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

<div id="wrap">

<div class="box">
  <div class="note">
    You can manually specify tags in your markup by adding <em>list items</em> to the unordered list!
  </div>

    <ul id="demo2" data-name="demo2">
        <li data-value="here">here</li>
        <li data-value="are">are</li>
        <li data-value="some...">some</li>
        <!-- notice that this tag is setting a different value :) -->
        <li data-value="initial">initial</li>
        <li data-value="tags">tags</li>
    </ul>

  <div class="buttons">
    <button id="demo2GetTags" value="Get Tags">Get Tags</button>
    <button id="demo2ResetTags" value="Reset Tags">Reset Tags</button>
    <button id="view-tags">View Tags on the console </button>
  </div>
</div>

</div>
<script>
</script>
</body>
</html>

このコードに関する私の問題は、この関数が

function showTags(tags) {

            var list = new Array();
            console.log(tags);
            var string;
            for (var i in tags)
              string +=  tags[i].value;
                console.log(string);
            }
        });

私がそれをした場合、私は「未定義」を返し、その後リスト項目のいくつかの値を返します。しかし、その機能をこの機能に変更した場合

function showTags(tags) {

        var list = new Array();
        console.log(tags);

        for (var i in tags)
          string +=  tags[i].value;

            console.log(string);
        }


    });

「タグ」という単語だけが返されるのはなぜですか?

4

2 に答える 2

3

初期化する必要がありますstring+=演算子は値を追加しますが、値stringがないため、追加するものはありません。

var string = "";
于 2012-08-01T14:23:13.037 に答える
1

forループの後にブラケットconsole.logがないため、反復ごとにステートメントが呼び出されません。

于 2012-08-01T14:27:16.960 に答える