9

動的に作成されたアンカー要素の onClick イベント ハンドラー関数の引数に文字列を渡そうとしています。フィドル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);
}
4

8 に答える 8

23

適切な文字列構文を使用する必要があります。これ

"<a href='#' onclick='test('"+elem[i].url+"')'>dd</a><br><br>"

結果として

<a href='#' onclick='test('http://domain.tld')'>dd</a><br><br>

onclick と test のパラメータには ' を使用できません。代わりに \" を使用してください。

"<a href='#' onclick='test(\""+elem[i].url+"\")'>dd</a><br><br>"

その結果、

<a href='#' onclick='test("http://domain.tld")'>dd</a><br><br>
于 2013-04-16T11:18:53.130 に答える
1

複数のパラメーターを渡すには、文字列を ASCII 値と連結してキャストできます。&#39;

var str= "&#39;"+ str+ "&#39;";

イベントに渡すことができる同じパラメーターですonclick(str)。複数のパラメーターを渡す場合に役立ちます。すべてのブラウザーで動作します。

于 2016-12-06T05:02:37.880 に答える
1

直接使用:

test('"+elem[i].url+"') 

それ以外の:

'test('"+elem[i].url+"')' 

メソッド内で文字列を渡します。

于 2013-04-16T12:11:07.023 に答える
1

私があなたの質問を誤解していなければ、これがあなたの答えです。

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++){
        var a =$('<a>',{href:'#',text:'dd'});
        a.click(function(e){
               test(elem[i].url)
        });
        $('.mytest').append(a).append($('</br>')).append($('</br>'));

    }
});

function test(url){
    console.log("url is "+url);
}
于 2013-04-16T12:38:37.173 に答える