0

正在创建一个动态字段表单,其设置包括标签、名称、ID、最小值、最大值、值。

当我单击按钮时,一个 js 函数会返回两个 div 内的文本框的定义。

这里返回的 HTML 代码:

<!--field div-->
<div id="text-field<?php echo $FieldId; ?>" class="new-field-div" onclick="activeSettings('text-field<?php echo $FieldId; ?>', 'text')">
    <p>Single Line Text</p>
    <input name="text-field<?php echo $FieldId; ?>" type="text" disabled />
</div>

<!--filed settings div-->
<div id="text-field-settings<?php echo $FieldId; ?>" class="new-field-div">
<p>Paragraph Field Label</p>
<input id="label-" name="label-" type="text"  />
<p>Field Size</p>
<select name="size-">
    <option value="small">Small</option>
    <option value="medium">Medium</option>
    <option value="large">Large</option>
</select>
<p>Charcter Range</p>
Min: <input id="min" name="min" type="text" value="0" style="width:50px;" />
Max: <input id="max" name="max" type="text" value="0" style="width:50px;" />
<p>Required: <input name="required" type="checkbox" value="yes" /> </p>
</div>

我想使用 js 过滤两个 div 个体。

我试过了:

function add_new_field(FormId, Type)
{
    jQuery.ajax({
        type: "POST",
        url: ajaxurl,
        data: "action=ufb_add_new_field&FormId=" + FormId + "&FieldType=" + Type,
        success:function(data){

            var div1 = jQuery(data).find('div#text-field1');

            var div2 = jQuery(data).find('div#text-field-settings1');

            //filter 1st div
            jQuery("#right-side-fields").append(div1);

            //filter 2nd div
            jQuery("#left-side-fields-settings").append(div2);
        }
    });
}

但没有运气,需要帮助或建议的家伙。提前致谢。

4

1 回答 1

0

你接收到的数据类型是一个字符串,你需要解析 html 来获取 DOM 节点。

检查http://api.jquery.com/jQuery.parseHTML/

尝试在成功功能的乞求时添加它。

data = $.parseHTML(data);

这将让您保留一个 DOM 节点数组而不是一个字符串,因此在用 jQuery 对象包装它之后,您应该能够找到您正在寻找的 div。

于 2013-06-10T12:37:45.407 回答