1
<li onclick='doSomething(this)'><img src='pix.png' /><a href='#'>link</a></li>
<li onclick='doSomething(this)'><img src='pix2.png' /><a href='#'>link2</a></li>

单击列表时,我希望该列表中 img 的显示属性变为“内联”

function doSomething(obj)
{
    //how to make <img> inside the onclick <li> display=inline
}

如何使用该函数调用来处理这个问题,我想要这样,因为我有一个以这种方式格式化的现有代码。

谢谢!

4

3 回答 3

2

这应该够了吧

function doSomething(obj)
{
    obj.getElementsByTagName("img")[0].style.display = "inline";
}
于 2013-09-26T12:02:14.533 回答
1

您可以使用getElementsByTagName传递obj来查找img标签:

function doSomething(obj) {
  var images = obj.getElementsByTagName("img");
  for(var i in images) {
    images[i].style.display = "inline";
  }
}
于 2013-09-26T12:02:01.027 回答
0

尽管这里的每个人都会告诉您,您不应该再使用内联 onclick 处理程序(这是正确的),但我认为您别无选择是理所当然的。

您可以将 id 分配给您的 img 元素,如下所示:

<li onclick='doSomething("img1")'><img id='img1' src='pix.png' /><a href='#'>link</a></li>
<li onclick='doSomething("img2")'><img id='img2' src='pix2.png' /><a href='#'>link2</a></li>

接着:

function doSomething(id)
{
    document.getElementById(id).style.display = "inline";
}
于 2013-09-26T12:04:40.133 回答