各行をハイパーリンクとして持つ動的テーブルを作成しました。行のテキストを文字列パラメータとして渡す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); これは文字列を出力しますが、なぜ呼び出し関数が呼び出されないのかはわかりません。
あなたが引用符内の文字列の折り返しを渡していると、 ':引用符で "JavaScriptのshowMessagePopup(\ '' + keyStr + '\')"' – Satpal
いいえ、私は渡していない午前、文字列の折り返し。 –
'' javascript:showMessagePopup(\ 'keyStr +' \ ') '' – Satpal