js 拼接HTML字符串 onclick事件传多个参数问题

欢迎来到Altaba的博客  2017年10月27日

问题:烦躁工作让技术博客停了好久才更新,实在对不住大家和自己了,今天重新捡起来 

直接上源码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js字符串拼接onclick出现的问题</title>
</head>
<body>
    <div id="box">

    </div>
</body>
</html>
<script src="../../../js/jquery1.7.js"></script>
<script>
    function show(a,b) {
        //console.log(a.name);
        //console.log(a.age);
        console.log(a);
        console.log(b);
    }

    function show2(a) {
        console.log(a);
        alert(a);
        console.log(a.name);
        console.log(a.age);

    }

    var arr = [
        {
            name:'wangwu',
            age:23,
            hight:[180,180,180]
        },

        {
            name:'zhangsan',
            age:22,
            hight:[180,160,180]
        },
        {
            name:'lisi',
            age:21,
            hight:[180,170,180]
        }
    ]

    var ht=''


    for(var i=0 ; i< arr.length ; i++){
        //错误示范1,点击事件不触发
        //ht = ht + '<div><button οnclick="show(arr[i].name,arr[i].age)">我是按钮'+i+'</button></div><br>'

        //错误示范2,点击事件在页面加载时候就已执行
        //ht = ht + '<div><button οnclick="'+show(arr[i].name,arr[i].age)+'">我是按钮'+i+'</button></div><br>'

        //错误示范3,点击事件不触发
        //ht = ht + '<div><button οnclick="show('+arr[i].name+','+ arr[i].age +')">我是按钮'+i+'</button></div><br>'

        //错误示范4
        //ht = ht + '<div><button οnclick=show2("'+arr[i]+'")>我是按钮'+i+'</button></div><br>'

        //正确示范1
        //ht = ht + '<div><button οnclick=show("'+arr[i].name+'","'+ arr[i].age +'")>我是按钮'+i+'</button></div><br>'
        
        //正确示范2
        ht = ht + '<div><button οnclick=show2('+JSON.stringify(arr[i])+')>我是按钮'+i+'</button></div><br>'


    }

    $('#box').append(ht)
</script>


正确示范 1,2为可解决办法

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 非常感谢您的问题。这里是用 HTML、CSS 和 JavaScript 写一个圣诞树的一个简单示例: HTML 代码: ```html <div id="christmas-tree"> <div class="star"></div> <div class="trunk"></div> <div class="layer layer1"></div> <div class="layer layer2"></div> <div class="layer layer3"></div> </div> ``` 这里我们使用了一个 `div` 元素来包裹整个圣诞树,并使用多个嵌套的 `div` 元素来表示树的星星、树干和不同层次的叶子。 CSS 代码: ```css #christmas-tree { position: relative; width: 200px; height: 400px; } .star { position: absolute; top: -20px; left: 90px; width: 20px; height: 20px; background-color: yellow; border-radius: 50%; } .trunk { position: absolute; bottom: 0; left: 95px; width: 10px; height: 40px; background-color: brown; } .layer { position: absolute; bottom: 40px; width: 160px; height: 160px; border-radius: 80px; background-color: green; } .layer1 { left: 20px; } .layer2 { left: 40px; } .layer3 { left: 60px; } ``` 这里我们使用了相对定位和绝对定位来确定圣诞树中各个部分的位置。我们还为圣诞树设置了宽度和高度,并为每个层使用了圆角来表示叶子。 JavaScript 代码: ```javascript const tree = document.querySelector('#christmas-tree'); // 随机生成圣诞装饰品的颜色 const getRandomColor = () => { const colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']; return colors[Math.floor(Math.random() * colors.length)]; }; // 在 ### 回答2: 要使用HTML、CSS和JavaScript编写一个圣诞树,可以按照以下步骤进行: 1. 创建HTML文件,并添加一个div元素作为圣诞树的容器。给这个div元素设置一个id,例如"id=christmas-tree"。 2. 在CSS文件中,设置圣诞树容器的样式。可以使用背景颜色来表示圣诞树的颜色,并设置容器的宽度和高度。还可以使用padding和margin属性来调整容器的位置。 3. 在JavaScript文件中,使用document.getElementById方法获取圣诞树容器的引用。然后,可以使用innerHTML属性来动态生成圣诞树的图形。 4. 在JavaScript中,编写一个函数来生成圣诞树的图形。可以使用字符串拼接的方式来构建圣诞树的每一行,然后将这些行添加到容器的innerHTML中。 以下是一个示例的JavaScript函数,用于生成圣诞树的图形: ```javascript function generateChristmasTree() { var treeContainer = document.getElementById("christmas-tree"); var tree = ""; for (var i = 0; i < 10; i++) { var row = ""; // 添加空格 for (var j = 0; j < 10 - i; j++) { row += " "; } // 添加星号 for (var k = 0; k < i * 2 + 1; k++) { row += "*"; } // 每一行结束时换行 row += "<br>"; // 将行添加到树中 tree += row; } // 将树添加到容器中 treeContainer.innerHTML = tree; } ``` 最后,在HTML文件中,调用生成圣诞树的函数即可。可以使用button元素,并给按钮添加一个onclick属性来调用函数。 ```html <button onclick="generateChristmasTree()">生成圣诞树</button> ``` 以上步骤完成后,当点击"生成圣诞树"按钮时,就会在页面上动态生成一个由星号组成的圣诞树图形。 ### 回答3: 使用HTML、CSS和JavaScript可以编写一个简单的圣诞树效果。 首先,在HTML中创建一个div元素,用作圣诞树的容器。然后,使用CSS设置这个容器的宽度、高度和背景颜色,可以选择绿色。 接下来,在容器中添加一个div元素作为树干,使用CSS设置它的宽度、高度和背景颜色,可以选择棕色。 然后,使用JavaScript动态生成和插入一些圣诞树的分支。可以使用for循环来重复生成分支,然后将它们添加到容器中。 在JavaScript中,可以通过创建一个div元素,并使用CSS设置它的宽度、高度、位置和背景颜色,例如绿色。然后,通过修改元素的样式属性,例如top和left,将分支放置在正确的位置。 在循环内,可以为每个分支设置不同的宽度和高度,以创建不同大小的圣诞树分支效果。 最后,使用CSS添加一些动画效果,例如使树叶晃动或闪烁,营造出更加生动的圣诞树效果。 通过结合HTML、CSS和JavaScript的功能,可以实现一个简单的圣诞树效果。当然,除了上述描述的基本效果,还可以通过进一步的样式和动画设置来增强圣诞树的视觉效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值