我想在点击事件中获得标签的位置。对于exameple:
<label class="labelClass" onclick="getPosition()"> label1 </label>//return position 1
<label class="labelClass" onclick="getPosition()"> label2 </label>//return position 2
<label class="labelClass" onclick="getPosition()"> label3 </label>//return position 3 ...etc
<label class="labelClass" onclick="getPosition()"> label4 </label>
<label class="labelClass" onclick="getPosition()"> label5 </label>
function getPosition() {
//pseudocode to get position
var label = document.getElementsByClassName("labelClass");
alert(label.position) //something like this;
}
答案 0 :(得分:2)
您必须将HTMLCollection
转换为Array
,以便您可以从列表中找到该元素的索引。希望这对你有用..
<label class="labelClass" onclick="getPosition(this)" > label1 </label>//return position 0
<label class="labelClass" onclick="getPosition(this)" > label2 </label>//return position 1
<label class="labelClass" onclick="getPosition(this)" > label3 </label>//return position 2 ...etc
<label class="labelClass" onclick="getPosition(this)"> label4 </label>
<label class="labelClass" onclick="getPosition(this)"> label5 </label>
function getPosition(label)
{
var list=document.getElementsByClassName("labelClass");
list = [].slice.call(list);
alert(list.indexOf(label));
}
以下是jsfiddle
答案 1 :(得分:0)
试试这个:
将onclick =“getPosition()”更改为onclick =“getPosition(this)”
:
- 将函数getPosition()更改为函数getPosition(obj)
- 使用alert(obj.style.position)
答案 2 :(得分:0)
这可能会有所帮助
function getPosition()
{
var p = $(this);
var position = p.position();
$( ".result" ).text( "left: " + position.left + ", top: " + position.top );
}