javascript - 如何在 .append() 中获取脚本的值?

标签 javascript c# jquery

这是我的下拉列表:

<div id="addCam"></div>
                            <div id="addDiv">
                                <select id="type1">
                                    <option value="">- Kiểu áo -</option>
                                    @foreach (var item in Model.teetypes)
                                    {
                                        <option value="@item.Image">@item.Name</option>
                                    }
                                </select>
                                <a class="btn btn-info btn-default" id="addBtnH" style="text-align:center" title="Thêm sản phẩm"><i class="fa fa-plus"></i></a>
                            </div>

这是我的 javascript .append():

$(document).ready(function () {
    var count = 2;
    var maxAppend = 0;
    $("#addBtnH").click(function () {
        var name = $("#type1 option:selected").val();
        var name1 = $("#type1 option:selected").text();
        if (name == '') return;
        if (maxAppend >= 5) {
            $("#addDiv").hide();
            return;
        }
        $("#addDiv").show();
        $("#type1 option:selected").attr('disabled', 'disabled');
        $("#type1").val('');

        $("#addCam").append("<div class='widget' id='del" + count + "'><div class='widget-body'><div class='col-md-3'><span style='display:block'><img src='" + name + "' id='tee" + count + "' height='75'/></span></div>" +
            "<div class='col-md-1'><select id='color" + count + "' onchange='changeColor" + count + "()'>@foreach (var item in Model.teecolors){<option value='@item.Color' style='background-color: #@item.Color'></option>}</select></div><div id='dis" + count + "'>" + name1 + "</div>" +
            "<hr class='wide'><input type='text' name='input'><a class='btn btn-info btn-default' rel='"+name+"' id='delete" + count + "' style='text-align:center' title='Xóa sản phẩm'><i class='fa fa-trash'></i></a>" + @*str +*@
            "<script>$('#delete" + count + "').click(function(){var images = $(this).attr('rel'); $('#type1 option[value = "+"images"+"]').removeAttr('disabled');$('#del" + count + "').remove();});" + "<" + "/script>" +
            "<script type='text/javascript'>function changeColor" + count + "(){var eID = document.getElementById('color" + count + "'); var colorVal = eID.options[eID.selectedIndex].value; document.getElementById('tee" + count + "').style.background = '#' + colorVal;}" + "<" + "/script>" +
            "</div></div>");
        count = count + 1;
        maxAppend++;
    });
});

我的问题是,当我点击添加按钮时,它会将 div 作为内容添加到追加中,并且已添加的值将在下拉列表中被禁用。在添加的div中,有一个delete按钮,点击它,div会消失,disabled属性值也会被移除。我创建“图像”以获得该按钮的 attr('rel'),但我不知道如何让 $("#type1 option[value=images]") 理解“图像”是一个值,而不是一个字符串?请帮助我!

最佳答案

将 scirpts 元素写入要评估的代码中不是最佳实践。

您正在寻找的技术是不断使用 jquery 选择器来获取附加节点并动态设置属性。 考虑这个解决方案:

$("#addCam").append($('<ul>').attr('class', 'some-class')
                     .append($('<li>').attr('class', 'some-other-class')
                             .append($('<img>').attr('src', 'somePath'))
                            .on('click', liClickedHandler)));

关于javascript - 如何在 .append() 中获取脚本的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33728166/

相关文章:

javascript - jQuery 1.9 - 如何从 $.browser.msie 迁移?

javascript - 如何让 php `json_encode` 返回 Javascript 数组而不是 Javascript 对象?

c# - 将 List 初始化为静态方法

c# - 为什么在这个例子中 var Int32 不是 List<Int32>

jquery - 如何使用 jQuery 复制和清除表单元素?

javascript - 将数组传递给 Flot 图表

javascript - 在 IE 中使用 javascript 预填充动态创建的文本框

javascript - 在javascript和jquery中将元素 append 到父级后如何获取元素的位置?

javascript - 如何防止在窗口上附加多个处理程序

c# - 如何访问Silverlight客户端和服务器端?