Angularjs jqlite append()和jquery append()对<;的作用不同;td>;

Angularjs jqlite append()和jquery append()对<;的作用不同;td>;,jquery,angularjs,Jquery,Angularjs,我正在尝试将一些元素附加到,并且我看到了使用内置jqlite与使用jquery时的一些不同行为。我制作了一把小提琴来展示这种差异: 当我这样做时,似乎: element.append('<td>Val 1</td><td>Val 2</td>'); // jqlite 但我找不到办法让它工作。关于这个应该如何工作,有什么我不理解的吗 谢谢 据我所知,这是JQLite中的一个bug: function JQLite(element) {

我正在尝试将一些元素附加到,并且我看到了使用内置jqlite与使用jquery时的一些不同行为。我制作了一把小提琴来展示这种差异:

当我这样做时,似乎:

element.append('<td>Val 1</td><td>Val 2</td>'); // jqlite
但我找不到办法让它工作。关于这个应该如何工作,有什么我不理解的吗


谢谢

据我所知,这是JQLite中的一个bug:

function JQLite(element) {

    ...

    if (isString(element)) {
        var div = document.createElement('div');
        // Read about the NoScope elements here:
        // http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx
        div.innerHTML = '<div>&#160;</div>' + element; // IE insanity to make NoScope elements work!
        div.removeChild(div.firstChild); // remove the superfluous div
        JQLiteAddNodes(this, div.childNodes);
        this.remove(); // detach the elements from the temporary DOM div.
    } else {
        JQLiteAddNodes(this, element);
    }
}

我建议在Angular的github上提交一个问题。

另一个解决方案是:

    var cells = angular.element('<table><tbody><tr>' +
                                '<td>Val 1</td><td>Val 2</td>' +
                                '</tr></tbody></table>').children().children().children();
    element.append(cells);
var cells=angular.element(“”+
“Val 1Val 2”+
'').children().children().children();
元素。追加(单元格);
这很难看,但我想你可以把它包装成一个实用函数

也许最好的解决办法就是去掉IE的疯狂线


如果您打算使用jQuery,您可以确保首先包含它,并完全避免这个问题。:)是的,如果可能的话,“超级强者”希望避免添加完整的jquery库。我只是想看看我是否找到了一个很好的理由来添加它。:)如果您只想替换所有内容,只需使用element.html()即可work@user417918至少be的电源足够冷,可以使用角度传感器。如果可以避免的话,我通常同意不使用jQuery。github上已经存在一个问题:这似乎是一个单独(但类似)的问题。每个人似乎都关心如何修复jqLite,而不是jqLite的主要功能本身。
function JQLite(element) {

    ...

    if (isString(element)) {
        var div = document.createElement('div');
        // Read about the NoScope elements here:
        // http://msdn.microsoft.com/en-us/library/ms533897(VS.85).aspx
        div.innerHTML = '<div>&#160;</div>' + element; // IE insanity to make NoScope elements work!
        div.removeChild(div.firstChild); // remove the superfluous div
        JQLiteAddNodes(this, div.childNodes);
        this.remove(); // detach the elements from the temporary DOM div.
    } else {
        JQLiteAddNodes(this, element);
    }
}
div.innerHTML = '<div></div><td>asdf</td>';
element[0].innerHTML += '<td>Val 1xx</td><td>Val 2yy</td>'; 
    var cells = angular.element('<table><tbody><tr>' +
                                '<td>Val 1</td><td>Val 2</td>' +
                                '</tr></tbody></table>').children().children().children();
    element.append(cells);