Javascript 内容更改后的元素高度
我有一段代码,修改DIV的内容以匹配textarea的内容,然后将DIV中的高度更改应用于textarea元素Javascript 内容更改后的元素高度,javascript,jquery,textarea,Javascript,Jquery,Textarea,我有一段代码,修改DIV的内容以匹配textarea的内容,然后将DIV中的高度更改应用于textarea元素 <textarea class="fieldEdit" data-fieldid="1_description"></textarea> <div class="hiddenDiv" data-fieldid="1_description"></div> <Script> $('.fieldEdit').live('keyu
<textarea class="fieldEdit" data-fieldid="1_description"></textarea>
<div class="hiddenDiv" data-fieldid="1_description"></div>
<Script>
$('.fieldEdit').live('keyup', function(){growTextArea(this)});
function growTextArea(parameter) {
// works
$('div').find("[data-fieldid='1_description']").text($(parameter).val());
$("[data-fieldid='1_description']").text($(parameter).val());
// No Works
height = $('div').find("[data-fieldid='1_description']").outerHeight();
height = $("[data-fieldid='1_description']").outerHeight();
alert(height);
// Works
heightDiv = $('.hiddenDiv').outerHeight();
alert(heightDiv);
$(parameter).css('height', $('div').find("[data-fieldid='1_description']").outerHeight());
}
</script>
$('.fieldEdit').live('keyup',function(){growTextArea(this)});
函数区域(参数){
//工作
$('div').find(“[datafieldid='1_description']”)。text($(parameter.val());
$(“[data fieldid='1_description']”)。文本($(parameter.val());
//没用
高度=$('div')。查找(“[data fieldid='1_description']”)。outerHeight();
高度=$(“[data fieldid='1_description']”)。outerHeight();
警戒(高度);
//工作
heightDiv=$('.hiddenDiv').outerHeight();
警报(高度div);
$(parameter).css('height',$('div').find(“[datafieldid='1_description'])).outerHeight();
}
DIV内容正确更改,因此搜索功能正常工作,但是搜索功能始终返回DIV的原始高度。该函数由文本区域中的onKeyUp调用。如果将.find替换为.hiddenDiv,则高度更改将正确反映。您需要使用jQuery promise函数。比如:
$('#divId').html(someText).promise().done(function(){
// check height now
});
也许是一个简单的例子?你要找的是哪个
.find
你要换成.hiddenDiv
?实际上是一个输入错误,没有工作的人已经开始了$('div')。find…Roberts解决方案是一种不同的方法,可以工作,但我试图避免硬编码一个类或ID来识别div元素,而是使用一个数据属性。我不知道为什么jquery.find()允许我更改内容,但不能检索当前高度属性。。。我似乎无法让JSFIDLE按数据属性进行搜索,因此无法显示工作版本。