我有一个由jquery创建的选择框,其类为'classTypex'。
我想使用此函数显示/隐藏其子元素,但它不能隐藏元素..
根据下面的代码,我附加一个textarea和3个单选按钮..使用其他部分的代码我能够隐藏textaraea而不是单选按钮..请帮助
// To display radio button selections for DD typex
$(".classTypex").live("change", function () {
var id = $(this).attr("id").split("colTypex").join("");
var opt = $("#colTypex" + id + " option:selected").val();
if(opt == 'DD') {
// append a text area for none selection
$(this).after('<p>');
$(this).after('<textarea name="ddOptions'+id+'" id="ddOptions'+id+'" rows="4" cols="40">');
$(this).after('</p>');
// append radio buttons here
$(this).after('<p id="preTag'+id+'">');
$(this).after('Set Users as options');
$(this).after('<input type="radio" class="columnTypex" id="radioDD'+id+'" name="radioDD'+id+'" value="befree_user" />');
$(this).after('Set Entities as options');
$(this).after('<input type="radio" class="columnTypex" id="radioDD'+id+'" name="radioDD'+id+'" value="entity_data" />');
$(this).after('None');
$(this).after('<input type="radio" class="columnTypex" id="radioDD'+id+'" name="radioDD'+id+'" value="none" checked />');
$(this).after('</p>');
}
else {
$('#ddOptions'+id).hide();
$('#preTag'+id).hide();
}
});
答案 0 :(得分:1)
您的代码不起作用,因为对.after()
的每次(!)调用都会创建一个完整的代码,因此即使在您致电{{}}之前,第一个<p>
也会与其结束标记一起创建{1}}。
您应首先创建完整的HTML字符串,然后附加它。
.after('</p>')