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

时间:2015-11-16 03:40:59

标签: 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中,有一个按钮删除,当我单击它时,div将消失,并且将删除禁用的属性值。我创建'images'来获取该按钮的attr('rel'),但我不知道如何让$(“#type1 option [value = images]”)理解'images'是一个值,而不是串?请帮帮我!

1 个答案:

答案 0 :(得分:0)

将scirpts元素编写到要评估的代码中并不是最佳做法。

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

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