動的に生成される要素のonclick関数'属性に文字列を渡す。
動的に作成されるアンカー要素のonClickイベントハンドラ関数'の引数に文字列を渡そうとしているのですが、fiddle http://jsfiddle.net/shmdhussain/bXYe4/ を参照してください。
文字列を関数に渡すことができませんが、整数を関数に渡すことができます。どうか私を助けてください。事前にありがとうございます。
html
<DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>test</title>
<link rel="stylesheet" href="mystyle.css" class="cssfx"/>
<script src="/jquery.min.js"></script>
<script src="colon.js"></script>
</head>
<body>
<div class="mytest">
</div>
</body>
</html>
</html>
Javascriptを使用しています。
var elem=[ {"name":"husain","url":"http://google.com","age":21},
{"name":"ismail","url":"http://yahoo.com","age":22},
{"name":"nambi","url":"http://msn.com","age":23}
]
jQuery(function($){
var str="";
for(i=0;i<elem.length;i++){
str+="<a href='#' onclick='test('"+elem[i].url+"')'>dd</a><br><br>"
console.log(str);
}
$('.mytest').html(str);
});
function test(url){
console.log("url is "+url);
}
6
3
適切なストリングシタックスを使用する必要があります。これは
になります。
onclickとtestのパラメータに'は使えません。代わりに \" を使ってください。
という結果になります。
問題は、
str+="<a href='#' onclick='test('"+elem[i].url+"')'>dd</a><br/><br/>";
は"<.XXX;' のような文字列が返されます。a href='#' onclick='test('your_url')'>dd</a><br/><br/>"
といった文字列を返します。すると、このようなhtmlが生成されます。この場合、onclick属性には、 'test(') しか含まれていません。
これを試してみてください。
すると、このようなhtmlが生成されます。
直接使用する。
の代わりに
の代わりに、メソッド内で文字列を渡します。