需要准备的材料分别有:电脑、html编辑器、浏览器。
1、首先,打开html编辑器,新建html文件,例如:indexhtml,填充问题基础代码。
2、在indexhtml中的<script>标签中,输入js代码:var id = $('div')attr('id');documentbodyinnerText = id;。
3、浏览器运行indexhtml页面,此时取到了div的id并成功打印出了。
<html>
<head>
<title>js 获取div所填充内容的实际高度 </title>
</head>
<body>
<div id="div1">
百度知道是一个基于搜索的互动式知识问答分享平台,于2005年6月21日发布,并于2005年11月8日转为正式版。百度知道一直探索国际化发展,于2012年3月31日发布百度知道台湾版。
</div>
<button type="submit" onclick="test()">点击获取</button>
<script type="text/javascript">
function test() {
var oDiv = documentgetElementById('div1');
alert(oDivoffsetHeight);
}
</script>
</body>
</html>
下面结合各上图介绍一下各个属性的作用:
一offsetTop属性:
此属性可以获取元素的上外缘距离最近采用定位父元素内壁的距离,如果父元素中没有采用定位的,则是获取上外边缘距离文档内壁的距离。所谓的定位就是position属性值为relative、absolute或者fixed。
返回值是一个整数,单位是像素。
此属性是只读的。
二offsetLeft属性:
此属性和offsetTop的原理是一样的,只不过方位不同,这里就不多介绍了。
三offsetWidth属性:
此属性可以获取元素的宽度,宽度值包括:元素内容+内边距+边框。不包括外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
四offsetHeight属性:
此属性可以获取元素的高度,宽度值包括:元素内容+内边距+边框。不包括外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
五clientWidth属性:
此属性可以返回一个元素的宽度值,值是:元素的内容+内边距。不包括边框、外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
六clientHeight属性:
此属性可以返回一个元素的高度值,值是:元素的内容+内边距。不包括边框、外边距和滚动条部分。
返回值是一个整数,单位是像素。
此属性是只读的。
七scrollLeft属性:
此属性可以获取或者设置对象的最左边到对象在当前窗口显示的范围内的左边的距离,也就是元素被滚动条向左拉动的距离。
返回值是一个整数,单位是像素。
此属性是可读写的。
八scrollTop属性:
此属性可以获取或者设置对象的最顶部到对象在当前窗口显示的范围内的顶边的距离,也就是元素滚动条被向下拉动的距离。
返回值是一个整数,单位是像素。
首先要让DIV启用编辑模式
<div contenteditable=true id="divTest"></div>
通过设定contenteditable=true开启div的编辑模式这样DIV就可以跟文本框一样输入内容了。
不扯话题了。下面说怎么获取或设置光标位置
2个步骤
1:获取DIV中的光标位置
2:改变光标位置
var cursor = 0; // 光标位置
documentonselectionchange = function () {
var range = documentselectioncreateRange();
var srcele = rangeparentElement();//获取到当前元素
var copy = documentbodycreateTextRange();
copymoveToElementText(srcele);
for (cursor = 0; copycompareEndPoints("StartToStart", range) < 0; cursor++) {
copymoveStart("character", 1);//改变光标位置,实际上我们是在记录cursor的数量
}
}
给document绑定光标变化事件。用来记录光标位置
这样就可以拿到DIV的光标位置了
在 JS获取div高度的方法 中,整理了几个有关于获取div高度的方法,后来又遇到一个问题,怎么获取DIV在页面中的绝对位置,因此在这篇笔记中记录一下。
页面结构
样式
getBoundingClientRect用于获取某个元素 相对于视窗 的位置集合。集合中有top, right, bottom, left等属性。
offsetLeft指的是元素相对于 版面或 由 offsetParent 属性指定的 父坐标 的计算上侧位置,整型,单位像素。
借用这个思路,当我们想获取元素的绝对位置时,可以递归遍历,直到元素的父元素为body为止。
关于offsetParent属性,有以下几点Tips。
用js获取呗,你获取不到应该是你的div没设置宽高,而你用documentgetElementByID("ObjID")styleheight|width来获取的吧,这样只能获取设定了宽高的对象 没有设定的需要用offsetWidth|offsetHeight来获取,比如:documentgetElementByID("ObjID")offsetWidth|offsetHeight
<div id="cao" style="float:left">asdasd<br />asdsadasd</div>
<script>alert(documentgetElementById("cao")offsetWidth)</script>
如果这样获取不到,老子把电脑吃了,你TM问题又不叙述清楚,最TM烦你这种白痴问问题了,天知道你用了什么变态方法
需要一个DIV根据里面的元素自动适应高度,所以,肯定无法给这个DIV定义一个实际高度。而随便嵌套一个DIV却发现并不适应高度。这事就郁闷了。下面给出一些方法。大致的例子是: <div id="main">
<div id="content"></div>
</div>当Content内容多时,即使main设置了高度100%或auto。在不同浏览器下还是不能完好的自动伸展。内容的高度比较高了,但容器main的高度还是不能撑开。我们可以通过三种方法来解决这个问题。
增加一个清除浮动,让父容器知道高度。请注意,清除浮动的容器中有一个空格。
<div id="main">
<div id="content"></div>
<div style="font: 0px/0px sans-serif;clear: both;display: block"> </div>
</div> 增加一个容器,在代码中存在,但在视觉中不可见。
<div id="main">
<div id="content"></div>
<div style="height:1px; margin-top:-1px;clear: both;overflow:hidden;"></div>
</div> 增加一个BR并设置样式为clear:both。
<div id="main">
<div id="content"></div>
<br style="clear:both;" />
</div>以上三个方法都不是最好的解决方法,因为在程序代码观念中是提倡尽量不要添加无意义的标签代码。现在,你可以用下面的方法来实现DIV自适应高度效果#main {height:100%;
以上就是关于js如何获取div中的数据全部的内容,包括:js如何获取div中的数据、js 获取div所填充内容的实际高度、如何获取可编辑div或body里光标的像素位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)