Javascript 为什么vanilla js appendChild可以工作,而jQuery.append不能?

Javascript 为什么vanilla js appendChild可以工作,而jQuery.append不能?,javascript,jquery,Javascript,Jquery,这是一把小提琴: 我有一个单击功能,我无法单独在jQuery中使用,只能混合使用vanilla JS和jQuery。它正在工作,但我想理解为什么我不能在jQuery中完成这一切 //I couldn't get a jQuery equivalent of this function to work so I left it in vanilla js function createWidgetScriptElement(symbol) { var scriptElement = doc

这是一把小提琴:

我有一个单击功能,我无法单独在jQuery中使用,只能混合使用vanilla JS和jQuery。它正在工作,但我想理解为什么我不能在jQuery中完成这一切

//I couldn't get a jQuery equivalent of this function to work so I left it in vanilla js
function createWidgetScriptElement(symbol) {
    var scriptElement = document.createElement('script');
    scriptElement.async = true;
    scriptElement.src = 'https://s3.tradingview.com/external-embedding/embed-widget-technical-analysis.js';
    scriptElement.innerHTML = JSON.stringify({
            "symbol": symbol,
            "interval": "1m",
            "width": 425,
            "colorTheme": "light",
            "isTransparent": false,
            "height": 450,
            "showIntervalTabs": true,
            "locale": "en"
        });

        return scriptElement;
    }

$('.ttlink').on('click',function(e){
    var symbol = $(this).attr('data-href');
    var widgetScriptElement = createWidgetScriptElement(symbol);
    $('#target').empty();
    document.querySelector('#target').appendChild(widgetScriptElement);
    e.preventDefault();
})
我找不到第一个函数的jQuery等价物,所以我把它留下,这是我让它工作的唯一方法。在click函数中,当我在jQuery语法中组合empty和append时

$('#target').empty().append(widgetScriptElement);

我在控制台中遇到了一些错误,比如“嵌入widget technical analysis.js?=157748465696:1 widget settings parse error:SyntaxError:Unexpected end of JSON input”和“提供的设置无效,返回默认值”,这些错误只有在我尝试使用jQuery简化清空和加载#target div时才会出现

“控制台中出现了几个错误“-请向我们显示任何相关错误。还要确保你的问题包含我们需要的一切,以便在你的问题中重现你的问题。如果你的问题必须依赖于第三方网站,那么对未来的访问者来说,它将是无效的。我以前因为在这里输入了太多的代码而被人们“责骂”——因此我链接到包含所有代码的JSFIDLE。我将在问题中添加错误。这不是我个人的偏好。这只是为了有一个有用的记录,你的问题,为未来的游客与相同的问题。不管怎样,我现在正忙着全面检查发生了什么。然而,我的最佳猜测是:“根据设计,任何接受HTML字符串-jQuery()、.append()、.after()等的jQuery构造函数或方法都可能执行代码。这可以通过注入脚本标记或使用执行代码的HTML属性来实现”。最有可能的是,它不仅是附加,而且是执行代码。包括a是编写一个好问题的一部分,而不仅仅是人们的偏好。明白了,我没有使用SO的内置JSFIDLE功能。我们一定会继续使用它。谢谢你们让我走上正轨。