2017-01-31 8 views
2

私のタイトルを編集すると、悪い場合は私の問題のタイトルがわかりません。文字列内の各単語をループしてリンクに変換すると、最初の値が定義されていないとして返されます。

私は基本的に

See Good-By 

のような文字列を取り、リンクに各単語を変換した文字列に戻し入れています。私のコードは、最初の値がいつものようにundefinedを返し、まだ文字列内のすべての単語がうまくキャッチされたいくつかの理由を除き、正常に動作します

<a href"#">See</a> <a href="#">Good-by</a> 

のように結果が見えます。したがって、この場合、2つの単語しかないので2つのループが必要ですが、3回ループし、最初のものは未定義です。

HTML

<span class="definition">See Good-by</span> 

jQueryの

$('.definition').each(function(p) { 
    var c; 
    var result = $(this).text().split(' '); 
    $.each(result, function(i) { 
     if (result[i] != '') { 
     var link = ' <a href="/dictionary/word/' + result[i] + '/">' + result[i] + '</a>'; 
     c += link; 
     } 
    }) 
    $(this).html(c); 
}) 

だから結果は

undefined See good-by. 

を参照してくださいとグッド・バイ彼らはあるべきなリンクがあるとundefinedだけですテックスt。何が起こっているかわからない。

答えて

7

c = ''を初期化します。これはコードの問題です。そうでなければ、cの値はundefinedになります。それはundefinedとなっています。コードスニペットが添付されています。笑私はそれを見ていない、と私はそれも知っているので、それは悲しいです

<!DOCTYPE html> 
 
<html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
    <script> 
 
     $(document).ready(function() { 
 
      $('.definition').each(function (p) { 
 
       var c = ''; 
 
       var result = $(this).text().split(' '); 
 
       $.each(result, function (i) { 
 
        if (result[i] != '') { 
 
         var link = ' <a href="/dictionary/word/' + result[i] + '/">' + result[i] + '</a>'; 
 
         c += link; 
 
        } 
 
       }) 
 
       $(this).html(c); 
 
      }); 
 
     }); 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <span class="definition">See Good-by</span> 
 
</body> 
 

 
</html>

+0

OMGのおかげ –

関連する問題