Отправка динамически сгенерированного значения из функции javascript в другую функцию javascript - PullRequest
0 голосов
/ 10 мая 2011

У меня возникла еще одна проблема с проектом моего сайта. Хорошо, вот моя проблема ...

    <script>
function getTopArtist(){
    if (window.XMLHttpRequest){
        topartist = new XMLHttpRequest();
    }
    else{
        topartist = new ActiveXObject("Microsoft.XMLHTTP");
    }
    topartist.onreadystatechange=function(){
        try{
            if (topartist.readyState==4 && topartist.status==200){
                var ArtistDetails = topartist.responseXML.documentElement.getElementsByTagName("artist");

                for(i=0;i<=2;i++){
                    myartistname = ArtistDetails[i].getElementsByTagName('name')[0].firstChild.nodeValue;
                    alert(myartistname)
                    document.getElementById('topartistdiv').innerHTML+='<a href="javascript:getAlbums(this is the proble here);">Albums</a>';
            }
        }
        catch(er){
            alert("Oops something went wrong!");
        }
    }
    topartist.open("GET","http://localhost/test/topartist.php",true);
    topartist.send(null);
}
</script>

Моя проблема в строке 17, когда я пытаюсь указать имя исполнителя в скобках, чтобы затем я мог отправить их в другую функцию. Допустим, это предупреждает Beyonce Я хочу, чтобы ссылка была такой.

javascript:getAlbums('Beyonce');

Я думаю, это как-то связано со спецсимволами, но я не могу понять это. Любая помощь будет оценена.

Ответы [ 2 ]

1 голос
/ 10 мая 2011
document.getElementById('topartistdiv').innerHTML += '<a href="javascript:getAlbums(\'Beyonce\');">Albums</a>';
1 голос
/ 10 мая 2011

Вам необходимо заключить строку в кавычки, и вы уже использовали ' для строки JavaScript и " для строки атрибута HTML.

Используйте экранированную одинарную кавычку, \'.

'<a href="javascript:getAlbums(\'no problemo\');">Albums</a>'
...