选择2元素之间的元素并替换

时间:2016-11-16 07:10:41

标签: jquery replace

您好我想在节点

之后立即将'Register'替换为'Hello'

问题是'Register'这个词不在任何单独的元素中,这就是为什么我无法选择任何选择器并编辑它。并且我无法用任何选择器包装它,因为html是由php动态生成的,我无法编辑php代码,这就是为什么我需要jquery帮助。

  <div id="register_portion">
      <h3>Not registered? No problem!</h3>
      Register <!-- I want to change this text -->
      <div class="tml tml-register" id="theme-my-login1">
          <p class="message">Please register now.</p>
          <form name="registerform" id="registerform1" 
               action="/login-now/?pending=activation&amp;instance=1" 
                method="post">
                      form html...
          </form>
      </div>
  </div>

4 个答案:

答案 0 :(得分:1)

您需要获得h3元素的以下兄弟,使用get()获取底层DOM元素,然后使用nextSibling属性定位该节点,然后您可以使用{{3}设置文本。

$("#register_portion h3").get(0).nextSibling.nodeValue = "Hello";
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="register_portion">
  <h3>Not registered? No problem!</h3>
  Register
  <!-- I want to change this text -->
  <div class="tml tml-register" id="theme-my-login1">
    <p class="message">Please register now.</p>
    <form name="registerform" id="registerform1" action="/login-now/?pending=activation&amp;instance=1" method="post">
      form html...
    </form>
  </div>
</div>

答案 1 :(得分:0)

请试试这个:

使用类.replaceText

声明范围
<span class="replaceText">Register</span>

使用.text函数设置span元素的值

$('.replaceText').text('Hello');

这是solution

答案 2 :(得分:0)

将其封装在divspan内。使用idclass或元素本身访问该元素。然后使用:

 $('YourElement').html('YourText');

OR

$('YourElement').text('YourText');

以下代码满足您的条件:

$('#hello').html('Hello')
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="register_portion"><h3>Not registered? No problem!</h3>
    <div id="hello">Register</div> <!-- I want to change this text -->
    <div class="tml tml-register" id="theme-my-login1">
    <p class="message">Please register now.</p>
    <form name="registerform" id="registerform1" action="/login-now/?pending=activation&amp;instance=1" method="post">form html...</form>
   </div>
  </div>

答案 3 :(得分:0)

&#13;
&#13;
$('#register_portion').contents().filter(function() {
  return this.nodeType == 3;
}).replaceWith("qweqwew");
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="register_portion">
  <h3>Not registered? No problem!</h3>
  Register
  <!-- I want to change this text -->
  <div class="tml tml-register" id="theme-my-login1">
    <p class="message">Please register now.</p>
    <form name="registerform" id="registerform1" action="/login-now/?pending=activation&amp;instance=1" method="post">form html...</form>
  </div>
&#13;
&#13;
&#13;

如果register_portion中只有一个文本节点可用,则可以执行此操作