我需要将值传递给函数来更新对象。还有更多按钮。这只是一个镜头版本。问题是按下所有按钮会使用列表中的第一个值更新函数"按钮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>
答案 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
唯一。