Passing a string in the onclick function attribute of an element of a dynamically created element

I am trying to pass a string in the arguments to the onClick event handler function of a dynamically created binding element, see the script http://jsfiddle.net/shmdhussain/bXYe4/ .

I cannot pass a string to a function, but I can pass a numeric number to a function. Please help me with this. Thanks in advance.

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);
}
+5
source share
6 answers

You must use the correct string syntax. it

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

will result in

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

You cannot use 'for onclick and test parameters. Use \ "instead.

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

The result is

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

, str+="<a href='#' onclick='test('"+elem[i].url+"')'>dd</a><br/><br/>"; "<a href='#' onclick='test('your_url')'>dd</a><br/><br/>". HTML-:

<a href='#' onclick='test('your_url')'>dd</a><br/><br/>

onclick 'test ('.

:

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

html, :

<a href='#' onclick='test("your_url")'>dd</a><br/><br/>
+2

:

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

:

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

.

+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);
}
+1

, ASCII, , &#39;

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

, onclick(str). , . .

+1

:

test('elem[i].url') 

:

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

.

0

All Articles