美文网首页
Jquery or Javascript 添加HTML对象

Jquery or Javascript 添加HTML对象

作者: 过桥 | 来源:发表于2016-07-30 10:47 被阅读113次

    原始HTML

    <div class="form-group">
        <label title="" class="control-label col-sm-4 col-xs-4">经度</label>
        <div class="col-sm-8 col-xs-8">
             <input type="text" name="txt_T_Bas_Event.Longitude" id="txt_T_Bas_Event.Longitude" class="form-control" style="  " value="119"> 
        </div>
    </div>
    
    old.png

    需要在文本框后添加坐标拾取按钮

    实现效果

    <div class="form-group">
        <label title="" class="control-label col-sm-4 col-xs-4">经度</label>
        <div class="col-sm-8 col-xs-8"> 
            <div class="input-group">
                    <input type="text" name="txt_T_Bas_Event.Longitude" id="txt_T_Bas_Event.Longitude" class="form-control" style="  " value="119">
                    <span onclick="getLongitude();" class="input-group-addon" title="坐标拾取">
                            <i class="fa fa-map-marker"></i>
                    </span>
            </div>
        </div>
    </div>
    
    new.png

    尝试方法

    使用 beforeafter,直接追加 HTML

                //添加经纬度选择框
                $("input[id$='.Longitude']").each(function () {
                    //方法一
                    $(this).before('<div class="input-group">');
                    $(this).after('<span onclick="getLongitude();" class="input-group-addon" title="坐标拾取"><i class="fa fa-map-marker"></i></span></div>')
                });
    

    内容加上了,可是按钮换行,果断不能忍


    bugger.png

    查看代码如下

    <div class="form-group">
        <label title="" class="control-label col-sm-4 col-xs-4">经度</label>
        <div class="col-sm-8 col-xs-8"> 
            <div class="input-group"></div>
            <input type="text" name="txt_T_Bas_Event.Longitude" id="txt_T_Bas_Event.Longitude" class="form-control" style="  " value="119">
            <span onclick="getLongitude();" class="input-group-addon" title="坐标拾取">
                  <i class="fa fa-map-marker"></i>
            </span> 
        </div>
    </div>
    

    发现 <div class="input-group"> 后自动补全了 </div>

    改进方法一:Javascript outHTML

                //添加经纬度选择框
                $("input[id$='.Longitude']").each(function () {
                    var this_id = $(this).attr("id");
                    document.getElementById(this_id).outerHTML = '<div class="input-group">'
                        + document.getElementById(this_id).outerHTML
                        + '<span onclick="getLongitude();" class="input-group-addon" title="坐标拾取"><i class="fa fa-map-marker"></i></span></div>';
                });
    

    改进方法二:Jquery prop outHTML

                //添加经纬度选择框
                $("input[id$='.Longitude']").each(function () {
                    var oldHtml = $(this).prop("outerHTML");
                    $(this).prop("outerHTML", '<div class="input-group">' + oldHtml + '<span onclick="getLongitude();" class="input-group-addon" title="坐标拾取"><i class="fa fa-map-marker"></i></span></div>');
                });
    

    相关文章

      网友评论

          本文标题:Jquery or Javascript 添加HTML对象

          本文链接:https://www.haomeiwen.com/subject/rwxtsttx.html