jquery insertafter()在$(this)变量中不起作用

时间:2015-07-30 07:38:26

标签: jquery

jquery insertafter()无法在$(this)变量中使用。

我的编码在这里

<select name="input_field[]" class="selectcase">
        <option value="">Select</option>    
        <option value="input">Text</option> 
        <option value="option">Option</option>  
</select>

脚本

$(this).change(function (){         
    $("<div><input type='text' name=''></div>").insertAfter($(this));           
});

我有很多选择标签并选择特定的选择标签。使用更改功能,我想在select标签后添加文本框。我使用了insertAfter()函数。但它没有用。

3 个答案:

答案 0 :(得分:1)

this的值在您的情况下为window,因此您应该使用类名绑定事件

$('.selectcase').change(function (){         
    $("<div><input type='text' name=''></div>").insertAfter($(this));           
});

fiddle

答案 1 :(得分:1)

当绑定事件$(this)引用window时。您需要使用正确的选择器,即$(".selectcase")而不是$(this)来监听select的更改事件

$(".selectcase").change(function (){         
    $("<div><input type='text' name=''></div>").insertAfter($(this));           
});

答案 2 :(得分:1)

请勿在第一行使用this作为ID,必须替换为select

$('select').change(function (){         
    $("<div><input type='text' name=''></div>").insertAfter($(this));           
});