jQuery before()输出为字符串而不是HTML

时间:2016-11-02 17:41:29

标签: javascript jquery wordpress gravity-forms-plugin

我尝试使用一些简单的jQuery在Gravity Forms上输入之前注入一些HTML。

这是我的代码:

var formInputs = jQuery( "form li input" )

formInputs.each(function( index ) {
  this.before('<h1>Hello, world!</h1>');
});

以下是每个输入的内容

enter image description here

与重力表格存在某种形式的冲突吗?

编辑:我尝试更换

this.before('<h1>Hello, world!</h1>');

this.before(jQuery('<h1>Hello, world!</h1>'));

而是我得到了jQuery对象

enter image description here

2 个答案:

答案 0 :(得分:3)

this方法中的

jQuery.each()是指JavaScript对象而不是该元素的jQuery对象,所以如果你想在该元素上使用任何jQuery方法,你可以用它来包装它jQuery的。

var formInputs = jQuery( "form li input" )

formInputs.each(function( index ) {
  jQuery(this).before( document.createTextNode('<h1>Hello, world!</h1>') );
});

如果你想转义html并输出为纯文本,那么document.createTextNode方法可以帮助你。将您的代码更新为以下内容。

var formInputs = jQuery( "form li input" )

formInputs.each(function( index ) {
  jQuery(this).before( document.createTextNode('<h1>Hello, world!</h1>') );
});

答案 1 :(得分:1)

你试过这个吗?

jQuery('<h1>Hello World!</h1>').insertBefore(this);

https://jsfiddle.net/r181ohtj/