2017-06-07 4 views
0

各行をハイパーリンクとして持つ動的テーブルを作成しました。行のテキストを文字列パラメータとして渡すjs関数を呼び出そうとしています。 しかし(コンソールで){行のテキスト}が定義されていません。テーブルの各行のハイパーリンクからjavascript関数を呼び出すことができません

パラメータを送信しない場合、その関数への呼び出しは正しく行われますが、パラメータが渡されるとエラーが表示されます。私はオブジェクトをパラメータとして受け入れる関数を期待していると思われるので、各ドット(。)をアンダースコア(_)に置き換えても、それは動作しません。続き

は私のコードです:

function showMessagePopup(data) { 
$('#tbody').html(""); 
     for (var key in data) { 
      keys.push(key); 
      var keyStr=""+key; 
      keyStr= keyStr.replace(/\./g, '__'); 
      // keyStr=keyStr.split('.').join(""); 
      // console.log("type of keyStr: "+keyStr+" "+typeof keyStr); 
      var eachrow = '<tr>' 
       + '<td><a href="javascript:showMessagePopup('+keyStr+')">' + key + '</a></td>' 
       + '<td>' + data[key] + '</td>' 
       + '</tr>'; 
      $('#tbody').append(eachrow); 
     } 
} 

function showMessagePopup(str) { 

     console.log("in showMessagePopup"); 
     // some operation 
} 

私は、次の試してみました: keyStr = keyStr.replace(/./ G '__'); keyStr = keyStr.split( '。')。join( "");

印刷タイプkeyStr: console.log( "type of" + typeof keyStr); これは文字列を出力しますが、なぜ呼び出し関数が呼び出されないのかはわかりません。

+0

あなたが引用符内の文字列の折り返しを渡していると、 ':引用符で "JavaScriptのshowMessagePopup(\ '' + keyStr + '\')"' – Satpal

+0

いいえ、私は渡していない午前、文字列の折り返し。 –

+0

'' javascript:showMessagePopup(\ 'keyStr +' \ ') '' – Satpal

答えて

0

onlick試してみてください。

<a href="#" onlick="showMessagePopup('+keyStr+')">' + key + '</a> 
+0

を試してください。何も表示されず、URLに# –

+0

が追加されています。 – Repo

+0

そして、showMessagePopupという2つの関数があることは知っていますか? – Repo

関連する問題