-1

JQuery Validation Engine からのスクリプトがあります。プロンプト 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>');

その後、動作します。なんで?

4

3 に答える 3

0

beforeメソッドの後にクラスを適用します。その場合、クラスは要素に適用されません。やってみました :

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

要素が挿入されているかどうかを確認するだけですか?

于 2013-02-19T10:18:00.400 に答える
0

prompt は、before() を使用して追加した DOM 要素へのポインターではありません。空の div を含む単なる変数です。ドキュメントに追加する前に、そのクラスを適用する必要があります。

var prompt = $('<div>');
prompt.addClass("formError");
$('#'+methods._getClassName(field.attr("id"))+'_msddHolder').before(prompt);
于 2013-02-19T10:20:49.547 に答える
0

これを試して:

var prompt = $('<div>').text('test');
于 2013-02-19T10:23:13.057 に答える