<table id="table" style="text-align:center;">
<tr>
<td>xxxxxxx</td>
<td> xx xx xx<img src="xxx" id="img_1" onclick="clickAction()"/><div id="div_1" style="display:none;">xxxx<div></td>
<td>xxxxxxx</td>
<td>xxxxxxx</td>
</tr>
<tr>
<td>xxxxxxx</td>
<td> xx xx xx<img src="xxx" id="img_2" onclick="clickAction()"/><div id="div_2" style="display:none;">xxxx<div></td>
<td>xxxxxxx</td>
<td>xxxxxxx</td>
</tr>
</table>有以上表,在表外还有其他的东西套着,我就不一一写了。
表的行数不定,列数也不定,但是每行的第二列一定会有img_x这么一个图片,点击图片触发click事件,将div_x显示出来。但是要控制好div显示的位置,这里要设置它的left。
请问怎么根据图片获取它在td中距离左侧的px数值呢?
if(obj.nextSibling.nodeType==1){
obj.nextSibling.style.display = 'block';
return;
}
clickAction(obj.nextSibling);
}
这里改下
<img src="xxx" id="img_1" onclick="clickAction(this)"/>
function clickAction(node){
var nodeLeftWidth = node && node.offsetLeft;
alert(nodeLeftWidth);
}
= = 我是要获取图片离当前td的左侧有多少px,和显示没啥关系……
要确定的是div显示的位置...而不是显示或隐藏状态。
<tr>
<td>xxxxxxx</td>
<td> xx xx xx<img src="xxx" id="img_1" onclick="clickAction(this)"/><div id="div_1" style="display:none;">xxxx<div></td>
<td>xxxxxxx</td>
<td>xxxxxxx</td>
</tr>
<tr>
<td>xxxxxxx</td>
<td> xx xx xxxxxxxxxxxxxxxxxx<img src="xxx" id="img_2" onclick="clickAction(this)"/><div id="div_2" style="display:none;">xxxx<div></td>
<td>xxxxxxx</td>
<td>xxxxxxx</td>
</tr>
</table>
<script type="text/javascript">
function clickAction(o) {
alert(o.offsetLeft)
}
</script>
谢啦~虽然这个不是完全解决,但是给了我灵感哟~
最后的解决代码:
<img src="xxx" id="img_1" onclick="clickAction(this)"/>function clickAction(t){
var leftWidth = t.offsetLeft - t.parentNode.previousSibling.offsetWidth + 16;//用图片的left减去第一个td的宽度加上图片的宽度就OK啦。
}