[英]How to pass id, name & value of a div tag to a javascript function
我试图基于html下拉菜单的onchange属性将div标记中存储的值传递给javascript函数。
但是什么都没有通过。 显示未定义的错误。
这是我的代码:
假设$temp_c
的值为30。
<span id="temperature_div"><?php echo $temp_c; ?></span>
<label for="ddl_temptype"></label>
<select id="ddl_temptype" name="ddl_temptype" onchange="choose_temperature(this.value,temperature_div.value,temperature_div.name); ">
<option value="celcius" selected>°C</option>
<option value="farenheit">°F</option>
</select>
和JavaScript
function choose_temperature(conv, value, name) {
alert(conv);
alert(value);
alert(name);
}
我哪里做错了??
在JavaScript中,您不能只使用temperature_div
作为变量,并假定它将是id为temperature_div
的对象。 有一些功能可以从DOM中获取元素。 在普通JavaScript中: document.getElementById('temperature_div')
将返回元素。 如果您使用的是JQuery,则$('#temperature_div')
会执行类似的操作。
编辑:
试试这个功能:
function choose_temperature(conv) {
alert(conv);
var element = document.getElementById('temperature_div');
alert(element.innerHTML);
alert(element.attributes["name"].value);
}
调用者: choose_temperature(this.value);
编辑:更改为使用innerHTML
和attributes["name"].value
代替value
和name
。 我假设这些是想要的。
首先,您使用了参数“值”,我认为这是一个关键词,最好不要使用。 我假设您是指“ temperature_div”中的“ name” html属性,但尚未定义。 我仅出于理解的目的放置name属性。
<html>
<script type="text/javascript">
function choose_temperature(conv, t_value, name)
{
alert(conv);
var div = document.getElementById("temperature_div");
alert(div.innerHTML);
alert(div.getAttribute("name"));
}
</script>
<label for="ddl_temptype"></label>
<select id="ddl_temptype" name="ddl_temptype" onchange="choose_temperature(this.value); ">
<option value="celcius" selected>°C</option>
<option value="farenheit">°F</option>
</select>
在JavaScript中使用getElementById()
<span id="temperature_div"><?php echo $temp_c; ?></span>
<label for="ddl_temptype"></label>
<select id="ddl_temptype" name="ddl_temptype" onchange="choose_temperature(); ">
<option value="celcius" selected> °C</option>
<option value="farenheit"> °F</option>
</select>
function choose_temperature()
{
var value=document.getElementById('temperature_div').innerHTML; //to get html inside span
var conv=document.getElementById('ddl_temptype').value;
alert(conv);
alert(value);
}
使用jquery代替,它更容易。
在div内获取值:$('#temperature_div')。html()或$('#temperature_div')。text()
您可以将选择框的onchange编写为:
$(document).on('change', '#ddl_temptype', function() {
// Write your function here
var div_value = $('#temperature_div').html();
var select_val = $(this).val();
alert(div_value);
});
或者像这样
$('#some_id').on('change', function() {
// Write your function here
var div_value = $('#temperature_div').html();
var select_val = $(this).val();
alert(div_value);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.