HTML元素属性赋值注意事项

有时我们会将数据放在HTML元素的属性值上存储,但是单双引号可能会导致属性值错误。

为HTML属性设置属性值时,不要尝试去拼接,这样做不可靠,当属性值中有单双引号时可能会导致属性值丢失,应该使用attr()或者setAttribute()方法去设置属性值。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<div id="storage">存储数据的载体1</div>
<button onclick="putDatas()">存储</button>
<button onclick="getDatas()">获取</button>
<script>
    //存储
    function putDatas() {
        let s1 = `"`;
        let s2 = `""`;
        $('#storage').attr('s1', s1);
        $('#storage').attr('s2', s2);
    }

    //获取
    function getDatas() {
        let s1 = $('#storage').attr('s1');
        let s2 = $('#storage').attr('s2');
        console.log('s1=' + s1);
        console.log('s2=' + s2);
    }

    $(function () {
        let s1 = `"`;
        let s2 = `""`;
        let s3 = `abc`;
        //错误做法,不要尝试去拼接标签的属性
        let div2 = "<div s1=\"" + s1 + "\" s2=\"" + s2 + "\" s3=\"" + s3 + "\">存储数据的载体2</div>";
        $('body').append(div2);
        //错误做法,不要尝试去拼接标签的属性
        let div3 = `<div s1="${s1}" s2="${s2}" s3="${s3}">存储数据的载体3</div>`;
        $('body').append(div3);

        //正确做法,使用属性方法attr()或者setAttribute()去设置值
        let div4 = document.createElement("div");
        div4.innerHTML = '存储数据的载体4';
        div4.setAttribute("s1", s1);
        div4.setAttribute("s2", s2);
        div4.setAttribute("s3", s3);
        $('body').append(div4);
        //正确做法,使用属性方法attr()或者setAttribute()去设置值
        let div5 = `<div>存储数据的载体5</div>`;
        div5 = $(div5);
        div5.attr('s1', s1);
        div5.attr('s2', s2);
        div5.attr('s3', s3);
        $('body').append(div5);
    });
</script>
</body>
</html>

如上面示例,“存储数据的载体2”和“存储数据的载体3”,尝试去用拼接的方式在属性中存放数据时,出现了错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值