使用不带Id和标记名的JavaScript更改DIV文本

时间:2016-03-02 09:44:41

标签: javascript html css

我有这段代码

<div class="points">
   <span>your points:</span>
   <div>29 P</div>
   <div>0 EXP</div>
</div>

我的代码中有多个DIV标记,我想更改第二个div的文本名称标签或id代码。实际上我想用我的代码替换这个文本我尝试使用js一个简单的CSS注入器

function injectCSS(str) {
    var node = document.createElement('style');
    node.innerHTML = str;
    document.body.appendChild(node);
}

injectCSS('div.points div:nth-child(2) { color: red } ');
injectCSS('div.points div:nth-child(2) { background: silver } ');

但这不会删除文字并让我添加新文字

2 个答案:

答案 0 :(得分:2)

我认为你已经接近使用你的函数,但这可以通过简单地使用JS querySelector来实现:

<div class="points">
   <span>your points:</span>
   <div>29 P</div>
   <div>0 EXP</div>
</div>   

和:

var str = "My String",
    el = document.querySelector('div.points div:nth-child(2)');

    el.innerHTML = str;   

在变量中缓存“HTML元素”之后,您可以轻松地操纵其他属性,如下所示:

el.style.color = "red";

PS。没有必要为此提取 jQuery

var str = "My String",
	el = document.querySelector('div.points div:nth-child(2)');
    
    el.innerHTML = str;
    el.style.color = "red";
<div class="points">
   <span>your points:</span>
   <div>29 P</div>
   <div>0 EXP</div>
</div>

答案 1 :(得分:0)

我找到了,这段代码可以使用

    <servlet>
       <servlet-name>Push Servlet</servlet-name>
       <servlet-class>org.primefaces.push.PushServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
       <async-supported>true</async-supported>
   </servlet>
  <servlet-mapping>
      <servlet-name>Push Servlet</servlet-name>
      <url-pattern>/primepush/*</url-pattern>
  </servlet-mapping>

没有标记名或杂乱的代码简单的一行代码 这也需要JQUERY