从jQuery('<div> </div>')返回原始html,来自未安装的反应组件

时间:2016-07-28 14:53:09

标签: jquery html dom reactjs

我正在使用"+"(我肯定不相关)并且在某个时刻我正在制作自定义叠加层,需要jsPlumb html构造函数:

$()

我试图返回一个字符串,或只是一个React元素,但这不起作用。

我很确定该方法只需要一些原始create:function(component) { return $("<select id='myDropDown'><option value='foo'>foo</option><option value='bar'>bar</option></select>"); } 元素,所以如果它是我使用的jQuery则无关紧要。 (就像你在Chrome中控制它一样,它打印出html,我确定它是一些原生的DOM格式?)

如何从未安装的反应组件返回原始HTML

我能找到的是如何将HTML转换为React组件,这是相反的。我想完全避免使用jQuery

3 个答案:

答案 0 :(得分:0)

jQuery对象可以轻松转换为DOM对象 例如.jQuery Obj:$(selector)。 DOM obj:$(selector)[0]。

答案 1 :(得分:0)

如果组件尚未呈现给您的DOM。您可以使用ReactDOMServer.renderToStaticMarkup(component)。即使它的名称在ReactDOMServer内部间隔,它仍然可以工作。

另一种可能性是创建一个新的DOM节点,渲染对它做出正常反应,然后获取其内容。也许是这样的:

create: function(component) {
    var div = document.createElement('div');
    React.render(component, div);
    return $(div.innerHTML);
}

答案 2 :(得分:0)

$("<div>")将仅返回对象。更好的方法是将html包装成div并返回父html

$("<select id='myDropDown'><option value='foo'>foo</option><option value='bar'>bar</option></select>").wrap("<div>").parent().html()