我需要使用按钮将var信息传递给函数

时间:2014-05-05 00:48:17

标签: javascript function object button var

我需要将值传递给函数来更新对象。还有更多按钮。这只是一个镜头版本。问题是按下所有按钮会使用列表中的第一个值更新函数"按钮1"

<div class="streams" style="width:620px;border:0px;">
<span style='color:green'>Online Streams</span>
<span style='color:grey'>Offline Streams</span>

<input type="button" id="streamName" value="Khaldor" onclick="changestream1();" >
<input type="button" id="streamName" value="Painuser" onclick="changestream1();" >

<script type="text/javascript">
    function changestream1() 
    {
        var streamInput = document.getElementById('streamName').value;
        var object = document.getElementById('live_embed_player_flash');
        var param = document.getElementById('param');
        object.setAttribute("data", "http://www.twitch.tv/widgets/live_embed_player.swf?channel=" + streamInput);
        param.setAttribute("value", "hostname=www.twitch.tv&channel=" + streamInput + "&auto_play=true&start_volume=25");
    }
</script>

<div id="streamHolder">
    <object type="application/x-shockwave-flash" height="378" width="620" id="live_embed_player_flash" bgcolor="#000000">
        <param name="allowFullScreen" value="true" />
        <param name="allowScriptAccess" value="always" />
        <param name="allowNetworking" value="all" />
        <param name="movie" value="http://www.twitch.tv/widgets/live_embed_player.swf" />
        <param id="param" name="flashvars" />
    </object>
</div>

3 个答案:

答案 0 :(得分:1)

ID的必须是唯一的,但您可以节省一些时间并为您的函数添加一个参数,该参数会点击当前元素:

onclick="changestream1(this);"

function changestream1(obj) 
{
    var streamInput = obj.value;
    var object = document.getElementById('live_embed_player_flash');
    var param = document.getElementById('param');
    object.setAttribute("data", "http://www.twitch.tv/widgets/live_embed_player.swf?channel=" + streamInput);
    param.setAttribute("value", "hostname=www.twitch.tv&channel=" + streamInput + "&auto_play=true&start_volume=25");
}

答案 1 :(得分:0)

您的2个按钮的ID为streamName。尝试使用不同的ID。

修改

var streamInput = this.value;

答案 2 :(得分:0)

这些元素

<input type="button" id="streamName" value="Khaldor" onclick="changestream1();" >
<input type="button" id="streamName" value="Painuser" onclick="changestream1();" >

两者都具有相同的id,因此Javascript正在抓取第一个,因为它的模糊不清哪个按钮重新为streamName。使每个id唯一。