在维基百科条目Unobtrusive JavaScript中有一个突兀的JavaScript示例:
<input type="text" name="date" onchange="validateDate(this);" />
解决方案如下:
<input type="text" name="date" />
window.onload = function(){ //Wait for the page to load.
var inputs = document.getElementsByTagName('input');
for(var i=0,l=inputs.length;i<l;i++){
input = inputs[i];
if(input.name && input.name=='date'){
input.onchange = function(){
validateDate();
}
}
}
};
function validateDate(){
//Do something when the content of the 'input' element with the name 'date' is changed.
}
有没有办法从第二个生成第一个代码示例?换句话说,是否可以在JavaScript对其执行操作后“呈现”页面的HTML?
答案 0 :(得分:1)
JavaScript可用于呈现HTML(向DOM添加元素),这基本上就是解决方案的作用。但是,如果您在添加onchange
事件后查看页面源,则无法看到它 - 这是因为浏览器仅显示未更改的DOM。
如果您想浏览更新的DOM,请下载适用于Firefox的Firebug。我不能推荐这个工具!