在另一个之前创建一个div

时间:2013-02-19 10:11:09

标签: jquery dom jquery-validation-engine

我有一个来自JQuery验证引擎的脚本。我想在另一个div之前设置提示div。

if($('#'+methods._getClassName(field.attr("id"))+'_msddHolder').length ){
var prompt = $('<div>');
$('#'+methods._getClassName(field.attr("id"))+'_msddHolder').before(prompt);
prompt.addClass(methods._getClassName(field.attr("id")) + "formError");
// add a class name to identify the parent form of the prompt
prompt.addClass("parentForm"+methods._getClassName(field.closest('form, .validationEngineContainer').attr("id")));
prompt.addClass("formError");

如果我这样做,它将无法工作,如果我手动设置:

$('#'+methods._getClassName(field.attr("id"))+'_msddHolder').before('<div>TEST</div>');

然后它有效。为什么呢?

3 个答案:

答案 0 :(得分:0)

您在之前的方法之后申请课程。该课程将不适用于您的元素。你试过了吗?

var prompt = $('<div><h4>I am a test</h4></div>');
$('#'+methods._getClassName(field.attr("id"))+'_msddHolder').before(prompt);

只是为了看看你是否有一个元素被插入?

答案 1 :(得分:0)

提示符不是指向使用before()附加的DOM元素的指针,它只是一个包含空div的变量,在将其附加到文档之前需要应用它的类。

var prompt = $('<div>');
prompt.addClass("formError");
$('#'+methods._getClassName(field.attr("id"))+'_msddHolder').before(prompt);

答案 2 :(得分:0)

试试这个:

var prompt = $('<div>').text('test');