0

我对 javascript 代码有一个问题。我知道如何使用 jQuery,但我必须为此使用 js。当有人单击第一个 div 以在第一个 div 中捕获图像“show.png”并将其更改为另一个时,我需要

我有这样的 HTML 代码(这重复了几次不同的 ID)

<div class="clickdown" onclick="return toggleMe('p_202')">
    <table>
        <tr valign="top">
            <td width="20px">
                <img src="images/show.png" align="top" alt="" />
            </td>
            <td>
                <b>textttext</b>&nbsp;&nbsp;<img src="images/btn_New.png" alt="" />
            </td>
        </tr>
    </table>
</div>
<div id="p_202" class="clickdown_content" style="display: none;">
    <p>
    texttexttexttexttexttexttext
    </p>
</div>

并存在用于展开和折叠第二个 div 的 Javascript 代码。

function toggleMe(a) {
   var e = document.getElementById(a);
   if (!e) return true;
   if (e.style.display == "none") {
       e.style.display = "block"
   } else {
       e.style.display = "none"
   }
   return true;
}

仅供参考不要告诉我“此代码是..ul”-我知道,但我只要求添加,而不是更改任何内容。

所以我不能添加 ID 并将其与 getElementByID() 一起使用

我尝试了这样的事情,但那不起作用(在这里我隐藏图像只是为了看看它是否有效)

function toggleMe(a) {
    var ttable = document.getElementsByTagName("table").item(0);
    var ttr = ttable.getElementsByTagName("tr").item(0);
    var ttd = ttr.getElementsByTagName("td").item(0);
    vari = ttd.getElementsByTagName("img").item(0);
    if (i.src == "images/btn_New.png") {
        i.style.display == "none"
    } else {
        i.style.display = "block"
    };
    var e = document.getElementById(a);
    if (!e) return true;
    if (e.style.display == "none") {
        e.style.display = "block"
    } else {
        e.style.display = "none"
    }
    return true;
}

恢复:

我必须保留旧代码 html 和 javascript 并添加新的 javascript 代码

4

1 回答 1

0

有用:

function toggleMe(a) {
  var ttable = document.getElementsByTagName("table").item(0);
  var ttr = ttable.getElementsByTagName("tr").item(0);
  var ttd = ttr.getElementsByTagName("td").item(0);
  var i = ttd.getElementsByTagName("img").item(0);
  if (i.src.indexOf("images/show.png") !== -1) {
    i.style.display = "none";
  } else {
    i.style.display = "block";
  }

  var e = document.getElementById(a);
  if (!e) return true;
  if (e.style.display == "none") {
    e.style.display = "block";
  } else {
    e.style.display = "none";
  }
  return true;
}

你必须使用 indexOf 因为在属性src你有整个 url。

Plunker 示例

您可以通过这种方式轻松更改图像:

i.src = "images/newShow.png";
于 2013-11-08T17:44:50.520 回答