嗨大家[和女孩]:)
只是想知道是否可以在div中获得角色的absolute
位置?
<div class="mycooldiv">
bunch of text is in here and for example some # and some other cool #
</div>
即。或许或以其他方式使用jQuery UI Position
- 我如何获得#
的位置?
答案 0 :(得分:4)
如果元素只包含文本,则可以将该字符包装在内联元素中,并使用.offset()
获取元素的位置。然后,放回原始文本。 小提琴:http://jsfiddle.net/Dp6JR/
var $elem = $('.mycooldiv');
var text = $elem.html();
var newText = text.replace(/#/, '<span class="get-position-of-it"></span>');
$elem.html(newText); //Set wrapper
var offset = $(".get-position-of-it").offset();
$elem.html(text) ; //Place back
var topPos = offset.top;
var left = offset.left;
注意:此函数获取第一个找到的#
字符的位置。如果您想获取所有字符的位置,请将g
添加到正则表达式(/#/g
)。
获得所有职位 - 小提琴:http://jsfiddle.net/Dp6JR/1/
所有字符的偏移量将存储在二维数组(矩阵)中。
var positions = [];
var $elem = $('.mycooldiv');
var text = $elem.html();
var newText = text.replace(/#/g, '<span class="get-position-of-it"></span>');
$elem.html(newText); //Set wrapper
$(".get-position-of-it").each(function(){
var offset = $(this).offset();
positions.push([offset.left, offset.top]);
});
$elem.html(text) ; //Place back
//`positions` is an array of all offset information
输出可以等同于:
var positions = [
[0, 0],
[100, 0]
];
答案 1 :(得分:3)
您可以使用lettering.js
插件,该插件包含span
元素中的字母(或字或行)。
通过这种方式,您可以轻松定位它们,并在这些元素上使用.position()
来获取其容器中的实际位置(应该有position:relative
)..
答案 2 :(得分:0)
你的立场是什么意思?文本字符串中的位置或其容器边界内的坐标(x,y)?
如果是第一种情况,您可以使用.idexOf()
方法,在第二种情况下,我会将该元素包装在span
标记中,然后获取其位置。