欢迎光临散文网 会员登陆 & 注册

jQuery怎么把留言板和星级评价结合到一起? javascript jquery html 怎么将星级评价追

2023-11-30 18:59 作者:酸奶公园  | 我要投稿

jQuery怎么把留言板和星级评价结合到一起?

javascript

jquery

html

怎么将星级评价追加进去?


 

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>留言板</title>

    <style>

        body{

            border-style: double;

            margin: 10% 20%;

        }

        h2{text-align: center;}

        #ly{

            font-size: 15px;

            height: 300px;

            overflow: auto;

        }

        #text{

            width: 99%;

            height: 85px;

        }

        #name{

            width: 99%;

            height: 15px

        }

        #show,#hide,#submit{float: right;}

        p{font-size: 10px;}

        #x{

        position:absolute;

        right: 22%;

        }

    </style>

    <script src="jquery-1.12.4.min.js"></script>

    <script>

        $(function(){

            var n = 1;

            $("#submit").click(function(){

                if($('#text').val()==""){

                    alert("不要输入空内容!😅");

                    return;

                }else{

                    if($('#name').val()==""){

                        $('#name').val("匿名");

                    }

                    var name=$('#name').val();

                    var text=$('#text').val();

                    //var newMsg='<p>第'+n+'条:' + $('#name').val() + ':' + $('#text').val() + '</p>';

                    var xin=$("<p><i>第"+n+"条:"+name+":&nbsp;</i>\n<b>&nbsp;"+text+"</b><span id='x'><a>删除</a></span>"+"</p>");

                    //var newStar='<div>' +$('.star').val()+'</div>';

                    //var historyMsg = $("#ly").html();

                    //$("#ly").html(newMsg+historyMsg);

                    $("#ly").append(xin);

                    n++;

                }

            });

            

        });

    </script>

</head>

<body>

    <h2>留言板</h2>

    <hr color="black"/>

    <div id="ly"></div>

    <hr color="black"/>

    <div>昵称</div>

    <textarea id="name" style="resize: none;"></textarea>

    <div>内容</div>

    <textarea id="text" style="resize: none;"></textarea>

    <div>

            <span data-value="1">&#9734</span>

            <span data-value="2">&#9734</span>

            <span data-value="3">&#9734</span>

            <span data-value="4">&#9734</span>

            <span data-value="5">&#9734</span>

    </div>

    <br>

    <button id="use">使用说明</button>

    <button id="hide">隐藏</button>

    <button id="show">显示</button>

    <button id="submit">发言</button>

    <script>

        $("#ly").on("click","p",function(){

            $(this).hide();

        });

        //on()方法:在某个元素上面(on)绑定一个事件

        $("#hide").click(function(){

            $("p").hide();

        });

        $("#show").click(function(){

            $("p").show();

        });

        $("#use").click(function(){

            alert("凑数的");

        });

        $(".tm").css("background-color","yellow");

 

        

        $(".star span").click(function () {

            $(this).html("★").addClass("selected");

 

            var value = $(this).data("value");

 

            $(this).prevAll().html("&#9733").addClass("selected");

            $(this).nextAll().html("&#9734").removeClass("selected");

        });

            

    </script>

</body>


要将星级评价追加到留言板中,可以按照以下步骤进行操作:

1. 在HTML中,为每个留言添加一个空的`<div>`元素,用于显示星级评价。修改留言的`<p>`标签如下:

```html

var xin=$("<p><i>第"+n+"条:"+name+":&nbsp;</i>\n<b>&nbsp;"+text+"</b><span id='x'><a>删除</a></span>"+"</p>").append("<div></div>");

```

2. 在JavaScript代码中,为星级评价的每个`<div>`元素添加点击事件处理程序。在点击事件处理程序中,将评价值存储到与每个留言关联的数据属性中,并修改显示样式。

```javascript

$(".star span").click(function () {

    var value = $(this).data("value");

    $(this).parent().data("rating", value);

    $(this).html("★").addClass("selected");

    $(this).prevAll().html("★").addClass("selected");

    $(this).nextAll().html("☆").removeClass("selected");

});

```

3. 在提交留言时,获取每个留言的星级评价值,并将其添加到留言的标签中。

```javascript

var rating = $(xin).find(".star").data("rating");

$(xin).append("<span>评分:" + rating + "</span>");

```

完整的修改后的代码如下:

```html

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>留言板</title>

    <style>

        body{

            border-style: double;

            margin: 10% 20%;

        }

        h2{text-align: center;}

        #ly{

            font-size: 15px;

            height: 300px;

            overflow: auto;

        }

        #text{

            width: 99%;

            height: 85px;

        }

        #name{

            width: 99%;

            height: 15px

        }

        #show,#hide,#submit{float: right;}

        p{font-size: 10px;}

        #x{

        position:absolute;

        right: 22%;

        }

    </style>

    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>

    <script>

        $(function(){

            var n = 1;

            $("#submit").click(function(){

                if($('#text').val()==""){

                    alert("不要输入空内容!😅");

                    return;

                }else{

                    if($('#name').val()==""){

                        $('#name').val("匿名");

                    }

                    var name=$('#name').val();

                    var text=$('#text').val();

                    var xin=$("<p><i>第"+n+"条:"+name+":&nbsp;</i>\n<b>&nbsp;"+text+"</b><span id='x'><a>删除</a></span>"+"</p>").append("<div></div>");

                    var rating = $(xin).find(".star").data("rating");

                    $(xin).append("<span>评分:" + rating + "</span>");

                    $("#ly").append(xin);

                    n++;

                }

            });

                

            $("#ly").on("click","p",function(){

                $(this).hide();

            });

            

            $("#hide").click(function(){

                $("p").hide();

            });

            

            $("#show").click(function(){

                $("p").show();

            });

            

            $("#use").click(function(){

                alert("凑数的");

            });

            

            $(".tm").css("background-color","yellow");

            

            $(".star span").click(function () {

                var value = $(this).data("value");

                $(this).parent().data("rating", value);

                $(this).html("★").addClass("selected");

                $(this).prevAll().html("★").addClass("selected");

                $(this).nextAll().html("☆").removeClass("selected");

            });

        });

    </script>

</head>

<body>

    <h2>留言板</h2>

    <hr color="black"/>

    <div id="ly"></div>

    <hr color="black"/>

    <div>昵称</div>

    <textarea id="name" style="resize: none;"></textarea>

    <div>内容</div>

    <textarea id="text" style="resize: none;"></textarea>

    <div>

        <span data-value="1">&#9734</span>

        <span data-value="2">&#9734</span>

        <span data-value="3">&#9734</span>

        <span data-value="4">&#9734</span>

        <span data-value="5">&#9734</span>

    </div>

    <br>

    <button id="use">使用说明</button>

    <button id="hide">隐藏</button>

    <button id="show">显示</button>

    <button id="submit">发言</button>

</body>

</html>

```

通过以上代码的修改,你现在可以在留言中选择星级评价,并将其显示在每条留言的下方。要将星级评价追加到留言板中,可以在提交留言的事件处理函数内添加相关代码。

首先,在HTML部分,可以在每条留言的p标签后面添加一个span标签,用于显示星级评价。将以下代码添加到留言板的JavaScript事件处理函数内部:

```javascript

// 在提交留言的事件处理函数内部

var starRating = $(".star .selected").length;

var starSpan = $("<span>").html("星级评价: " + starRating);

xin.append(starSpan);

```

然后,在星级评价的点击事件处理函数内部添加以下代码,以便在点击星级评价时更新星级评价的显示:

```javascript

// 在星级评价的点击事件处理函数内部

$(".star span").click(function () {

    $(this).html("★").addClass("selected");

    

    var value = $(this).data("value");

    

    $(this).prevAll().html("&#9733").addClass("selected");

    $(this).nextAll().html("&#9734").removeClass("selected");

    

    // 更新留言的星级评价显示

    var starRating = $(this).parent().find(".selected").length;

    $(this).parent().find("span").html("星级评价: " + starRating);

});

```

这样,在每条留言后面就会显示对应的星级评价。

完整的修改后的代码如下:

```html

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>留言板</title>

    <style>

        /* ... 留言板样式 ... */

    </style>

    <script src="jquery-1.12.4.min.js"></script>

    <script>

        $(function(){

            // ... 留言板事件处理 ...

            var n = 1;

            $("#submit").click(function(){

                // ... 留言板提交事件处理 ...

                // 获取星级评价的值

                var starRating = $(".star .selected").length;

                // 创建显示星级评价的span元素

                var starSpan = $("<span>").html("星级评价: " + starRating);

                // 将星级评价追加到留言中

                xin.append(starSpan);

                n++;

            });

            

            // ... 星级评价事件处理 ...

            $(".star span").click(function () {

                // ... 星级评价点击事件处理 ...

                // 更新星级评价的显示

                var starRating = $(this).parent().find(".selected").length;

                $(this).parent().find("span").html("星级评价: " + starRating);

            });

        });

    </script>

</head>

<body>

    <!-- ... 留言板内容 ... -->

    

    <textarea id="text" style="resize: none;"></textarea>

    <div>

        <span data-value="1">&#9734</span>

        <span data-value="2">&#9734</span>

        <span data-value="3">&#9734</span>

        <span data-value="4">&#9734</span>

        <span data-value="5">&#9734</span>

    </div>

    <!-- ... 其他按钮和事件处理 ... -->

</body>

</html>

```

此时,提交留言后,留言板中的每条留言后面都会显示对应的星级评价。要将星级评价追加到留言板中,可以在留言板中的每条留言后面添加星级评价部分。以下是修改后的代码:

```html

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>留言板</title>

    <style>

        body{

            border-style: double;

            margin: 10% 20%;

        }

        h2{text-align: center;}

        #ly{

            font-size: 15px;

            height: 300px;

            overflow: auto;

        }

        #text{

            width: 99%;

            height: 85px;

        }

        #name{

            width: 99%;

            height: 15px

        }

        #show,#hide,#submit{float: right;}

        p{font-size: 10px;}

        #x{

            position:absolute;

            right: 22%;

        }

        .star span{

            cursor: pointer;

        }

        .selected{

            color: gold;

        }

    </style>

    <script src="jquery-1.12.4.min.js"></script>

    <script>

        $(function(){

            var n = 1;

            $("#submit").click(function(){

                if($('#text').val()==""){

                    alert("不要输入空内容!😅");

                    return;

                }else{

                    if($('#name').val()==""){

                        $('#name').val("匿名");

                    }

                    var name=$('#name').val();

                    var text=$('#text').val();

                    var xin=$("<p><i>第"+n+"条:"+name+":&nbsp;</i>\n<b>&nbsp;"+text+"</b><span id='x'><a>删除</a></span></p>");

                    var starRating = $('<div></div>');

                    var stars = $(".star span.selected").clone();

                    starRating.append(stars);

                    $("#ly").append(xin);

                    $("#ly").append(starRating);

                    n++;

                }

            });

            

        });

    </script>

</head>

<body>

    <h2>留言板</h2>

    <hr color="black"/>

    <div id="ly"></div>

    <hr color="black"/>

    <div>昵称</div>

    <textarea id="name" style="resize: none;"></textarea>

    <div>内容</div>

    <textarea id="text" style="resize: none;"></textarea>

    <div>

            <span data-value="1">&#9734</span>

            <span data-value="2">&#9734</span>

            <span data-value="3">&#9734</span>

            <span data-value="4">&#9734</span>

            <span data-value="5">&#9734</span>

    </div>

    <br>

    <button id="use">使用说明</button>

    <button id="hide">隐藏</button>

    <button id="show">显示</button>

    <button id="submit">发言</button>

    <script>

        $("#ly").on("click","p",function(){

            $(this).hide();

        });

        $("#hide").click(function(){

            $("p").hide();

        });

        $("#show").click(function(){

            $("p").show();

        });

        $("#use").click(function(){

            alert("凑数的");

        });

        $(".tm").css("background-color","yellow");

 

        $(".star span").click(function () {

            $(this).html("★").addClass("selected");

 

            var value = $(this).data("value");

 

            $(this).prevAll().html("&#9733").addClass("selected");

            $(this).nextAll().html("&#9734").removeClass("selected");

        });

            

    </script>

</body>

</html>

```

在修改后的代码中,我添加了一个名为"star-rating"的div元素,用于包裹星级评价的星星。在点击"发言"按钮后,将选中的星星克隆并追加到留言内容的后面。这样就实现了将星级评价追加进留言板的功能。服务器出了会小差!请重试!


jQuery怎么把留言板和星级评价结合到一起? javascript jquery html 怎么将星级评价追的评论 (共 条)

分享到微博请遵守国家法律