如果这是一个愚蠢的问题,那就是谦虚的批评,但我不知道我的生活在这里找出了什么问题。
我在php模式中有一个echo元素:
echo'<select name="picks" id="winner">';
echo'<option value="'.$row['team1'].'">'.$team1.'</option>';
echo'<option value="'.$row['team2'].'">'.$team2.'</option>';
echo'</select>';
现在 在外面 php 我尝试做一个基本的javascript GET:
document.getElementById("winner");
然而,如果我在这里遗漏了某些东西,那么这个元素是无法访问的,是不是可以获得回显的元素ID?
答案 0 :(得分:2)
在执行元素选择之前,您应该确保您的DOM至少已加载。如果您可以使用jQuery,那么就像下面这样简单,您可以将此脚本放在head
部分或body
中的任何位置:
$(document).ready(function() {
// Perform any selects on the DOM
});
<强> JS 强>
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function() {
// The DOM is loaded and ready to be selected
var select = document.getElementById("winner");
var optionText = select.options[select.selectedIndex].text;
var optionValue = select.options[select.selectedIndex].value;
});
</script>
当然你也可以使用jQuery执行DOM选择:
<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$(document).ready(function() {
// The DOM is loaded and ready to be selected
var optionText = $("#winner option:selected").text();
var optionValue = $("#winner option:selected").val();
});
</script>
另一种可能性
如果未定义$row
,$team1
或$team2
并且您启用了PHP错误和通知,则HTML将呈现如下:
<select name="picks" id="winner"><b>E_NOTICE : </b> type 8 -- Undefined variable: row -- at line 4<br /><b>E_NOTICE : </b> type 8 -- Undefined variable: team1 -- at line 4<br />
<option value=""></option><b>E_NOTICE : </b> type 8 -- Undefined variable: row -- at line 5<br /><b>E_NOTICE : </b> type 8 -- Undefined variable: team2 -- at line 5<br />
<option value="" selected="selected"></option>
</select>
但是,如果您将PHP错误和警告设置为关闭,您会看到类似的内容:
<select name="picks" id="winner">
<option value=""></option>
<option value="" selected></option>
</select>
如果您无法访问选择HTML中的选项值(因为它们是空的),这将是一个很好的开始调查的步伐。
答案 1 :(得分:0)
使用JQUERY,您可以尝试以下操作:
// I have used mouse down event for demo purpose.
$(document).delegate('#winner', 'mousedown', function ()
{
alert('hi');
});
答案 2 :(得分:0)
尝试访问所选ID的值
我正在给一个演示小提琴
Demo fiddle
document.getElementById("winner").value;
答案 3 :(得分:0)
回应JS代码很常见,但有以下几种可能:
1 - 在php创建该元素之前放置document.getElementById("winner");
。
2 - 脚本标记中存在语法错误,导致错误,而选择不起作用。
答案 4 :(得分:0)
由于php部分在页面加载之前可用,你可以这样做:
<?php
$row['team1']=1;$team1='India';$row['team2']=2; $team2='SA';
echo'<select name="picks" id="winner">';
echo'<option value="'.$row['team1'].'">'.$team1.'</option>';
echo'<option value="'.$row['team2'].'">'.$team2.'</option>';
echo'</select>';
?>
<script>
console.log(document.getElementById("winner"));//see this in console.
</script>