如何将input的value值的变化更新到innerHTML?

问题描述:input输入内容,查看html结构,value值仍是默认值,未设置默认值的情况也是空。

如果我想获取到这个变化,应该如何处理呢?

解决办法:(jquery实现)

(function ($) {
    var oldHTML = $.fn.html;
    $.fn.formhtml = function () {
        if (arguments.length) 
            return oldHTML.apply(this, arguments);
        $("input,textarea,button", this).each(function () {
            this.setAttribute('value', this.value);
        });
        $(":radio,:checkbox", this).each(function () {
            // im not really even sure you need to do this for "checked"
            // but what the heck, better safe than sorry
            if (this.checked) 
                this.setAttribute('checked', 'checked');
            else 
                this.removeAttribute('checked');
        });
        $("option", this).each(function () {
            // also not sure, but, better safe...
            if (this.selected) 
                this.setAttribute('selected', 'selected');
            else 
                this.removeAttribute('selected');
        });
        return oldHTML.apply(this);
    };

    //optional to override real .html() if you want
    // $.fn.html = $.fn.formhtml;
})(jQuery);

通过测试:console.log($("body").formhtml());   可以捕捉到变化:

问题解决!

结论:

  • 非闭合标签(起始标记<span>,结束标记</span>)可以使用innerHTML来赋值。如:div、span。
  • 闭合标签(<input /> 起始和结束都在一个标记内,不能再嵌入其他元素)要使用value来赋值:如input。

补充说明:

1、jquery使用attr("value",xxx)可以,val("xxx") 则不可以;

2、document.getElementsByTagName("html")[0].innerHTML 对应的js方式实现,

可以参考jquery的fromhtml思路,修改属性value的值。  —— do more  and think more!

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值