日期:2014-05-16  浏览次数:20371 次

JS怎么获取图片在td中的位置呢?

<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数值呢?

------解决方案--------------------


function clickAction(obj){
        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);
}

------解决方案--------------------
document.getElementById('imgId').offsetLeft;
------解决方案--------------------
<table id="table" style="text-align:center;">
  <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>