动态创建SVG元素添加到指定位置

需求:当支付方式为预收款账户时,右侧输入金额列需要添加一个可以选择预收款单据金额的小按钮。

实现效果:

 

思路: 当选择支付方式的时候进行判断,如果时预收款,则调用神奇的函数来在指定位置创建一个小按钮。小按钮会绑定一个弹出框的方法,点击时会打开弹出框提供数据。

直接上代码:

function createFeather(paywayamountId, subId, paywayId) {
    // 获取payway_amount的div元素(这里就是需要添加的位置父元素)
    var containerDiv = document.getElementById(paywayamountId);
    
    //这里获取两个元素
    var existingSvg = containerDiv.querySelector('.svgfeather');
    var existingRow_oper = containerDiv.querySelector('.row-oper');
    
    //已经存在,则进行替换
    if (existingSvg) {
        containerDiv.removeChild(existingSvg);
    }
    if (existingRow_oper) {
        containerDiv.removeChild(existingRow_oper);
    }
    // 创建SVG元素
    var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg");
    svgElement.setAttribute("class", "svgfeather");    //创建类名
    svgElement.setAttribute("onmousedown", "openDialog(event," + JSON.stringify(subId) + "," + paywayId +")");    //创建点击的方法
    svgElement.setAttribute("height", "15");
    svgElement.setAttribute("width", "15");
    svgElement.style.cursor = "pointer";

    // 创建use元素
    var useElement = document.createElementNS("http://www.w3.org/2000/svg", "use");
    useElement.setAttributeNS("http://www.w3.org/1999/xlink", "xlink:href", "/images/images.svg#feather");

    // 将use元素添加到SVG元素中
    svgElement.appendChild(useElement);

    // 将SVG元素添加到ID为'payid'的div中
    containerDiv.appendChild(svgElement);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值