正如许多人所建议的那样,我尝试将变量保存为使用.value
找到的ID的.innerHTML
或document.getElementById
。这是我的所有HTML:
<html>
<head>
<title>write</title>
<script type="text/javascript" src="g.js"></script>
<link rel="stylesheet" type="text/css" href="g.css" />
</head>
<body>
<div id="box">
<textarea id="txt" placeholder="placeholder. type here.">text text</textarea>
</div>
</body>
</html>
这是我的javascript,目前用于触发包含文本区域中文本的提醒 - 现在就是,text text
:
function run(){
var txt = document.getElementById('txt');
alert(txt);}
run()
现在,加载页面会触发包含文字Null
的提醒,并在.value
之后添加getElementById('txt')
会导致无法提醒。非常感谢提前。
答案 0 :(得分:3)
问题是你的javascript在构造DOM之前正在执行。当您在文档的<head>
中加载JavaScript文件时,会在创建<textarea>
标记之前立即执行该文件。
尝试在</body>
标记之前的textarea下移动脚本块。
以下是一个示例:fiddle
构建DOM之后,您可以像使用getElementById
一样使用value
,并可以使用run()
属性访问textarea的内容。所有这些都是上面的小提琴。
或者,您可以使用在DOM准备就绪时提供事件的库来包装$(function () {
// code you want to execute when the DOM is ready.
run();
});
方法调用。 jQuery的例子是:
{{1}}
答案 1 :(得分:2)
function run() {
var txt = document.getElementById("txt").value;
alert(txt);
}
$(document).ready(function(){
run();
});
检查此jsfiddle link
你没有获得textarea值,因为你的javscript函数在DOM中的值之前被执行
或使用javascript
function run(){
var txt = document.getElementById("txt").value;
alert(txt);
}
window.onload = run();
的更多信息
答案 2 :(得分:1)
下面的javascript在firefox中运行。事实上,如果您点击此问题的answer
按钮,则可以在此页面的firebug中进行试用...
var textArea = document.getElementById("wmd-input"); // #wmd-input is the text input where your answer goes...
alert( textArea.value );
当然,请确保先输入一些文字。
当你参与其中时,你应该尝试jQuery:
alert( $("#wmd-input").val() );
或者更好,
console.log($("#wmd-input").val());
希望有所帮助。