javascript中动态生成id引用的问题

javascript中动态生成id引用的问题,javascript,jquery,dynamic,this,Javascript,Jquery,Dynamic,This,我有一个音频播放文件列表页面;查看器单击链接,播放相应的音频文件 单击新链接时,所有当前音频都需要停止。包括那个链接,如果它已经在播放的话。所以每个链接都是该音频文件的开始/停止 我已经构建了一个JQuery/JS脚本来实现这一点,但是这些脚本似乎在这个声明和动态性方面存在问题 音频Id与锚链接中的文本相同 HTML: 我错过了什么? 我讨厌Javascript。咕噜咕噜…事实上,jQuery对象的innerHTML属性(不是方法)并不存在。必须在DOM对象(JS)上调用它 它是$(“..”).

我有一个音频播放文件列表页面;查看器单击链接,播放相应的音频文件

单击新链接时,所有当前音频都需要停止。包括那个链接,如果它已经在播放的话。所以每个链接都是该音频文件的开始/停止

我已经构建了一个JQuery/JS脚本来实现这一点,但是这些脚本似乎在
这个
声明和动态性方面存在问题

音频Id与锚链接中的文本相同

HTML:

我错过了什么?
我讨厌Javascript。咕噜咕噜…

事实上,jQuery对象的innerHTML属性(不是方法)并不存在。必须在DOM对象(JS)上调用它
它是
$(“..”).html()
$(“..”).get(0).innerHTML
,因为get方法返回纯JS DOM对象。

innerHTML
是元素属性,而不是jQuery属性。请改用
this.innerHTML
$(this.html()
。@Taplar so
$(this).innerHTML
变为
$(this).html()
是,这似乎有效。谢谢,是的。jQuery不直接公开元素属性。要访问它们,您必须使用
prop()
方法,或者使用特定的实用程序方法,例如本例中的
html()
<audio id="Perihelion" src="/music/Perihelion.mp3" preload="auto"></audio>
<audio id="MassedVerses" src='/music/MassedVerses.mp3' preload="auto"></audio> 

<a class='music'>Perihelion</a>
<br><BR>
<a class='music'>Massed Verses</a>
$(document).ready(function() {
   /* PlayOn variable is required to know if the click on the link is
       starting or stopping THAT audio */
    var playOn = true;

   var sounds = document.getElementsByTagName("audio");
    $(".music").click(function (event) { 
        /* Prevent anchor default */
        event.preventDefault();

        /* Stopping all audio, on link click no matter what */
        for( i=0; i < sounds.length; i++) {
            sounds[i].pause();
        }


        /* Trying to dynamically generate id reference */ 
        var audioName = $(this).innerHTML;
        /* remove whitespace from the string */
        audioName = audioName.replace(/\s+/g, "");
        var fullAudioIdName = "#" + audioName;
        var audio = $(fullAudioIdName)[0];

        if (playOn === true) {
            audio.play();
            playOn = false;
            $(this).html("Stop "+audioName);
        }  else {
            audio.pause();
            $(this).html(audioName);
            playOn = true;
        }

    });
});
        var audioName = $(this).innerHTML; 
        /* Massed Verses */
        audioName = audioName.replace(/\s+/g, "");
        /* MassedVerses */ 
        var fullAudioIdName = "#" + audioName;
        /* #MassedVerses */
        var audio = $(fullAudioIdName)[0];
        /* audio is $(#MassedVerses)[0];