简体   繁体   English

在HTML中使用JavaScript变量

[英]Use JavaScript variable in html

I am creating a web page wherein the user can play the audio found on the url he entered. 我正在创建一个网页,用户可以在其中播放在他输入的URL上找到的音频。

For this I am first taking an input from the user, storing in a variable in JavaScript and then need to use the entered URL back in my html. 为此,我首先要从用户那里获取输入,将其存储在JavaScript中的变量中,然后需要在HTML中使用输入的URL。

My JavaScript and html codes: 我的JavaScript和html代码:

 <script type="text/javascript"> function loader() { var inpt=document.getElementById("userInput").value; } </script> 
 <input type="text" id="userInput"> <input type="submit" id="submit" onclick="loader()"> **use the value of inpt here** 

I cannot figure out how to use the input url back in the html. 我无法弄清楚如何在html中使用输入网址。 Am I doing something wrong ? 难道我做错了什么 ?

Also, is there any better way of doing this. 另外,还有什么更好的方法可以做到这一点。

Edit: What I am actually doing is trying to use the entered url in place of "/media/demo.wav" in this code: 编辑:我实际上是在尝试在此代码中使用输入的URL代替“ /media/demo.wav”:

 <div class="list-group" id="playlist"> <a href="" ng-class="{ 'list-group-item': true, active: isPlaying('../media/demo.wav') }" ng-click="play('../media/demo.wav')"> <i class="glyphicon glyphicon-play"></i> *song name* </a> </div> 

You can create a div and use JavaScript to populate the HTML inside the div . 您可以创建一个div并使用JavaScript填充div的HTML。 Here is what it might look like: 可能是这样的:

HTML: HTML:

<div id="audioplayer"></div>

And the JavaScript: 和JavaScript:

document.getElementById('audioplayer').innerHTML = "audio player code"+inpt+"other audio player code";

Update: 更新:

You shouldn't be doing an attribute replace. 您不应该进行属性替换。 Just wrap all that code in the audioplayer div, and set the innerHTML like what I showed you earlier: 只需将所有代码包装在audioplayer div中,然后像我之前向您展示的那样设置innerHTML即可:

JavaScript: JavaScript:

var audioplayerInnerHTML = '<div class="list-group" id="playlist">';
audioplayerInnerHTML .= '<a href="" ng-class="{ \'list-group-item\': true, active: isPlaying(\'..'+inpt+'\') }" ng-click="play(\'..'+inpt+'\')">';
audioplayerInnerHTML .= '<i class="glyphicon glyphicon-play"></i>';
audioplayerInnerHTML .= '*song name*';
audioplayerInnerHTML .= '</a>';
audioplayerInnerHTML .= '</div>';

document.getElementById('audioplayer').innerHTML = audioplayerInnerHTML;

Use This Code: 使用此代码:

 function loader() { document.getElementById("result").innerHTML = document.getElementById("userInput").value; } 
 <input type="text" id="userInput"> <input type="submit" id="submit" onclick="loader()"> <div id="result"></div> 

Update 更新资料

For achieving what you said in your edit, you can use the code below: 要实现您在编辑中所说的内容,可以使用以下代码:

var attr = document.getElementById("ELEMENT_ID").getAttribute('ng-class');
attr = attr.replace("../media/demo.wav", WHATEVERE_YOU_WANT);
document.getElementById("ELEMENT_ID").setAttribute("ng-class", attr);

Do something like this 做这样的事情

<input type="text" id="userInput">
<input type="button" id="button" onclick="loader();" value="do">

<div id="placeholder">**use the value of inpt here**</div>

<script>
function loader()
{
  var inpt = document.getElementById("userInput").value; 
  document.getElementById("placeholder").innerHTML=inpt;  
}
</script>

Try here https://jsfiddle.net/Menda0/e7phd00g/ 在这里尝试https://jsfiddle.net/Menda0/e7phd00g/

There are a few ways you can go about this. 有几种方法可以解决此问题。 Here are some examples. 这里有些例子。

Regular Javascript: fiddle here: https://jsfiddle.net/onfpg0d6/ 常规Javascript:在这里拨弄: https : //jsfiddle.net/onfpg0d6/

<script type="text/javascript">
    function loader() {
        var input = document.getElementById( "userInput" ).value;
        document.getElementById( "result" ).innerHTML = input;
    }
</script>

<input type="text" id="userInput">
<input type="submit" id="submit" onclick="loader();">
<p id="result"></p>

Using jQuery: fiddle here: https://jsfiddle.net/vbbow5ue/ 使用jQuery:在这里拨弄: https : //jsfiddle.net/vbbow5ue/

<script type="text/javascript">
    jQuery(document).ready(function(){
        jQuery("#submit").click(function(event){
            event.preventDefault();
            jQuery("#result").html( jQuery("#userInput").val() );
        });
    });
</script>

<input type="text" id="userInput">
<input type="submit" id="submit">
<p id="result"></p>

Using AngularJS: fiddle here: https://jsfiddle.net/8LLn3chv/ 使用AngularJS:在这里拨弄: https : //jsfiddle.net/8LLn3chv/

<div ng-app>
    <input type="text" id="userInput" ng-model="userInput">
    <p>{{userInput}}</p>
</div>

For your update try something like this. 对于您的更新,请尝试这样的事情。

<input type="text" id="userInput">
<input type="button" id="button" onclick="loader();" value="do">

<div class="list-group" id="playlist">
<a id="thing" href=""
ng-class="{ 'list-group-item': true, active: isPlaying('../media/demo.wav') }"
ng-click="play('../media/demo.wav')">
<i class="glyphicon glyphicon-play"></i>
*song name*
</a>
</div>

<script>
function loader()
{
  var inpt = document.getElementById("userInput").value; 
  document.getElementById("thing").setAttribute("ng-click", "play('"+ inpt+"')");
}
</script>

Jsfiddle here https://jsfiddle.net/Menda0/e7phd00g/ Jsfiddle在这里https://jsfiddle.net/Menda0/e7phd00g/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM