如何在jQuery上追加[string] [jquery object] [string]

时间:2018-05-27 13:54:27

标签: javascript jquery

我有以下

 var container = $(document.createElement('div'));
 var part1 = `<div  style="padding:5px" id="div${iCnt}"><input type='checkbox' onchange="checkboxOnChange(this,'${tmpId}')"/> `;
 var jqueryObj = tmpCp;
 var part2 =  `Log file ${iCnt}: <input type=text class="input" id="tb${iCnt}"> <input id="tbid${iCnt}" type="hidden" value="${tmpId}"/></div>`;

 $(container).append(part1);
 $(container).append(jqueryObj);
 $(container).append(part2);

我要归档的是第1部分的<div>变形,但如果我使用追加,它将在第1部分后自动生成关闭标记</div>。 如果我把它们放在一起,jquery对象将解析成字符串,显示为[Object object]:/

编辑:

                    var tmpCp = $(document.createElement('div')).css({margin:'5px',width: '30px',height: '30px',background: 'url(./images/select.png) center'});
                    var cpId = tmpId+"_"+"CP";
                    tmpCp.attr('id',cpId);
                    tmpCp.ColorPicker({
                        color: '#0000ff',
                        onShow: function (colpkr) {
                            $(colpkr).fadeIn(500);
                            return false;
                        },
                        onHide: function (colpkr) {
                            $(colpkr).fadeOut(500);
                            return false;
                        },
                        onChange: function (hsb, hex, rgb) {
                            $(`#${cpId}`).css('backgroundColor', '#' + hex);        
                            $(`.${tmpId}`).css('background', '#' + hex);
                        }
                    });

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

不知道这是一个理想的做法,但以下做了我想要的,希望有人可以告诉我一个正确的方法去做,哈哈。

诀窍是,一旦将part1和part2 HTML字符串附加到continer DIV,我使用:first-child选择器获取第一个子节点并将jqueryObject附加到中间。

enter image description here

var part1 = `<div  style="padding:5px;display:flex;align-items:center;" id="div${iCnt}">    <input type='checkbox' onchange="checkboxOnChange(this,'${tmpId}')" checked/> `;                
var part2 =  `Log file ${iCnt}: <input type=text class="input" id="tb${iCnt}" > <input id="tbid${iCnt}" type="hidden" value="${tmpId}"/></div>`;
container.append(part1+part2);                          

$('#links').append(container);
var firstChild = $(`#div${iCnt} :first-child`);
tmpCp.insertAfter(firstChild);