想得到具有输入焦点的text input,js代码怎么实现? 我先用activeElement得到它,再创建range,是不是这个思路呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 onblur的时候,不是有一个你传一个对象。然后从这个对象中取value的属性,不就是了吗? <script>var fun=function(){var inputs=document.getElementsByTagName("INPUT"); for(var i=0;i<inputs.length;i++){ if(inputs[i]==document.activeElement){ alert(inputs[i].name); } }};document.onclick=fun;</script> 我要取的是这个text input的源码。比如有这样一个文档<html><body><input name="et" type="text" /></body></html>我想通过javascript取到这个<input name="et" type="text" />这整串字符出来,通过dom的方式 <script>var rep=function(val){ val=val.replace(/^.*?(<input[^>]*>).*?$/img,"$1"); val=val.replace(/([a-zA-Z])\s*=([^'"> ]*)/img,"$1=\"$2\""); return val;};var fun=function(){var inputs=document.getElementsByTagName("INPUT"); for(var i=0;i<inputs.length;i++){ if(inputs[i]==document.activeElement){ alert(rep(inputs[i].parentNode.innerHTML)); } }};document.onclick=fun;</script>IE下有些问题 纠正下一个小bug本来是想纠正IE下自动去掉input后便跟着的属性的引号bug,但刚才发的正则式没写好var rep=function(val){ val=val.replace(/^.*?(<input[^>]*>).*?$/img,"$1"); val=val.replace(/([a-zA-Z])\s*=([^'"> ]+)/img,"$1=\"$2\""); return val;};红色的地方,原来的*号改成+号 呃,现在想想,如果本来的input没有引号,我这不自动给加上了吗?这个可真是为难啊... 感谢楼上朋友卖力支持,非常感谢。不过这里不想用正则,我的最终意图就是想得到具有输入焦点的某个text input的源码,并且用dom的机制来实现。 <script>var fun=function(){ var inputs=document.getElementsByTagName("INPUT"); for(var i=0;i<inputs.length;i++){ if(inputs[i]==document.activeElement){ alert(inputs[i].outerHTML);//汗一下,原来我javascript如此学艺不精,居然不知道outerHTML这个玩意儿 } }};document.onclick=fun;</script> 在JS中可以使用:obj.innerHTML: 也就是从对象的起始位置到终止位置的全部内容,包括Html标签。obj.innerText: 从起始位置到终止位置的内容, 但它去除Html标签 obj.outerHTML: 除了包含innerHTML的全部内容外, 还包含对象标签本身。 再汗一下,firefox死都不支持outerHTML javascript与asp.net传值 <script type="text/javascript">里如何post传递? jquery如何调用webservice JS小问题 JS 如何验证来路地址?? 获取当前鼠标下的标签 JavaScript权威指南 如何办到鼠标停留3秒才触发事件 window.open的窗口如何能得到父页面内嵌iframe的name 有关复选框的问题? jQuery调用$.ajax()方法返回数据问题,希望大虾帮忙看看--急 js读取xml内容,并以图片显示内容。?
<script>
var fun=function(){
var inputs=document.getElementsByTagName("INPUT");
for(var i=0;i<inputs.length;i++){
if(inputs[i]==document.activeElement){
alert(inputs[i].name);
}
}
};
document.onclick=fun;
</script>
比如有这样一个文档
<html>
<body>
<input name="et" type="text" />
</body>
</html>我想通过javascript取到这个<input name="et" type="text" />这整串字符出来,通过dom的方式
<script>
var rep=function(val){
val=val.replace(/^.*?(<input[^>]*>).*?$/img,"$1");
val=val.replace(/([a-zA-Z])\s*=([^'"> ]*)/img,"$1=\"$2\"");
return val;
};
var fun=function(){
var inputs=document.getElementsByTagName("INPUT");
for(var i=0;i<inputs.length;i++){
if(inputs[i]==document.activeElement){
alert(rep(inputs[i].parentNode.innerHTML));
}
}
};
document.onclick=fun;
</script>
IE下有些问题
var rep=function(val){
val=val.replace(/^.*?(<input[^>]*>).*?$/img,"$1");
val=val.replace(/([a-zA-Z])\s*=([^'"> ]+)/img,"$1=\"$2\"");
return val;
};
红色的地方,原来的*号改成+号
不过这里不想用正则,我的最终意图就是想得到具有输入焦点的某个text input的源码,并且用dom的机制来实现。
<script>
var fun=function(){
var inputs=document.getElementsByTagName("INPUT");
for(var i=0;i<inputs.length;i++){
if(inputs[i]==document.activeElement){
alert(inputs[i].outerHTML);
//汗一下,原来我javascript如此学艺不精,居然不知道outerHTML这个玩意儿
}
}
};
document.onclick=fun;
</script>
也就是从对象的起始位置到终止位置的全部内容,包括Html标签。obj.innerText:
从起始位置到终止位置的内容, 但它去除Html标签 obj.outerHTML:
除了包含innerHTML的全部内容外, 还包含对象标签本身。