Javascript - 如果标记包含特定文本,则替换文本

时间:2016-04-20 11:03:37

标签: javascript html

我正在使用Wordpress,如果标签包含特定文本,我需要替换文本。我对Javascript不太熟悉,所以我希望有人可以帮助我:)。

这是我的html结构:

<tbody>
<tr class="tr1">
<td class="td1">
<a href="http://www.example.com">Name 1</a>
<strong class="quantity">× 1</strong>
</td>
<td class="td2">
<span class="span1">30$</span>
</td>
</tr>
</tbody>

我想要实现的目标是:

  • 如果span class =“span1”=“30 $”或span class =“span1”=“40 $”
  • 然后“名称1”需要替换为“名称2”
  • 如果不是(= span不是30或40),则脚本不能运行。
  • “名称2”与span = 30或40相同。

我希望我的解释足够清楚。我试图先自己搜索,我发现了一些功能,如getelement和innerHTML,但我没有找到如何将它与我需要的结果相结合。

谢谢!

编辑:我想用特定的href =“http://www.example.com”定位标签A

1 个答案:

答案 0 :(得分:3)

您可以使用 querySelector() querySelectorAll() closest() ,并执行以下操作< / p>

function changeTxt() {
  // get all spans
  var ele = document.querySelectorAll('.td2 .span1');
  // iterate over the html element collection
  for (var i = 0; i < ele.length; i++) {
    // parse the text to get number
    // if symbol is in starting following will not work
    // var text = parseFloat(ele[i].innerHTML, 10);
    var text = parseFloat(ele[i].innerHTML.match(/\d+(\.\d+)?/)[0], 10);
    // check the value is 30 or 40
    if (text == 30 || text == 40) {
      // if true then  get current tr and get anchor tag and update content
      var item = ele[i]
        // getting closest ancestor tr
        .closest('tr')
        // select a tag which have particular attribute value
        .querySelector('.tad1 a[href="http://www.example.com"]')
        // check item exists and update
      if (item) {
        item.innerHTML = 'Name 2';
        // disabling click event (since disabled attribute will not work)
        //item.setAttribute('onClick', "return false;");
        //or remove the href attribute
        item.removeAttribute('href');
        // or
        // item.setAttribute('href','#');
      }
    }
  }
}
changeTxt();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<table>
  <tbody>
    <tr class="tr1">
      <td class="tad1">
        <a href="http://www.example.com">Name 1</a>
        <strong class="quantity">× 1</strong>
      </td>
      <td class="td2">
        <span class="span1">30.0$</span>
      </td>
    </tr>
    <tr class="tr1">
      <td class="tad1">
        <a href="http://www.example.com">Name 1</a>
        <strong class="quantity">× 1</strong>
      </td>
      <td class="td2">
        <span class="span1">30.1$</span>
      </td>
    </tr>
    <tr class="tr1">
      <td class="tad1">
        <a href="http://www.example.com">Name 1</a>
        <strong class="quantity">× 1</strong>
      </td>
      <td class="td2">
        <span class="span1">20$</span>
      </td>
    </tr>
    <tr class="tr1">
      <td class="tad1">
        <a href="http://www.example.com">Name 1</a>
        <strong class="quantity">× 1</strong>
      </td>
      <td class="td2">
        <span class="span1">£30</span>
      </td>
    </tr>
    <tr class="tr1">
      <td class="tad1">
        <a href="#">Name 1</a>
        <strong class="quantity">× 1</strong>
      </td>
      <td class="td2">
        <span class="span1">30$</span>
      </td>
    </tr>
  </tbody>
</table>

相关问题