javascript - 使用jquery更改标签的属性

标签 javascript jquery

我有这个 html 代码,我想用 jQuery 编辑它。 这是 html。

<html> 
  <head> 
    <title>JQuery Problem 1</title> 
    <script type="text/javascript" src="jquery-1.4.min.js"></script> 
    <script type="text/javascript" src="problem1.js"></script> 
  </head> 
  <body> 
    <ol> 
      <li>Comp 250
        <ul> 
          <li>HTML</li> 
          <li>CSS</li> 
          <li>CGI</li> 
          <li>PHP</li> 
          <li>JavaScript</li> 
        </ul> 
      </li> 
      <li>Comp 345
        <ul> 
          <li>Objects and classes</li> 
          <li>Static and constant members</li> 
          <li>Operator overloading</li> 
          <li>Templates</li> 
          <li>Inheritance</li> 
          <li>Polymorphism</li> 
        </ul> 
      </li> 
      <li>Comp 431
        <ul> 
          <li>Perl language</li> 
          <li>File uploads and downloads</li> 
          <li>AJAX and JSON</li> 
          <li>Java Servlets</li> 
          <li>JSP</li> 
        </ul> 
      </li> 
    </ol> 
  </body> 
</html> 

我想做的是编辑Ol列表的列表标签。所以我要编辑的标签是

<li>Comp 250
<li> Comp 345
<li> Comp 431

this is how i want them to be
 <li style="margin: 1em; font-weight: bold">Comp 250
  <li style="margin: 1em; font-weight: bold">Comp 245
    <li style="margin: 1em; font-weight: bold">Comp 431

最佳答案

一些事情:

  1. 使用 css() 设置样式属性;
  2. 因为<ul>位于列表元素内,粗体也将应用于子列表元素。

所以你有两个选择:

  1. 将文本括在 <span> 中;或
  2. 将字体粗细设置为粗体,然后将子列表元素的字体粗细设置为正常。

对于第一个,仅获取文本节点有点棘手,但可以完成。尝试:

$("ol > li").each(function() {
  $($(this).contents()[0]).wrap("<span>").parent()
    .css({margin: "1em", fontWeight: "bold"});
});

输出为:

<ol>
  <li><span style="margin: 1em; font-weight: bold;">Comp 250 </span>
    <ul>
      <li>HTML</li>
      <li>CSS</li>
      <li>CGI</li>
      <li>PHP</li>
      <li>JavaScript</li>
    </ul>
  </li>
  <li><span style="margin: 1em; font-weight: bold;">Comp 345 </span>
    <ul>
      <li>Objects and classes</li>
      <li>Static and constant members</li>
      <li>Operator overloading</li>
      <li>Templates</li>
      <li>Inheritance</li>
      <li>Polymorphism</li>
    </ul>
  </li>
  <li><span style="margin: 1em; font-weight: bold;">Comp 431 </span>
    <ul>
      <li>Perl language</li>
      <li>File uploads and downloads</li>
      <li>AJAX and JSON</li>
      <li>Java Servlets</li>
      <li>JSP</li>
    </ul>
  </li>
</ol>

或者,您可以更改内部列表上的字体粗细:

$("ol > li").css({margin: "1em", fontWeight: "bold"})
  .find("ul").css({fontWeight: "normal"});

关于javascript - 使用jquery更改标签的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2349781/

相关文章:

javascript - JQuery attr() 和 Data() 返回未定义

jquery - 如何使用 jQuery 淡出背景颜色?

javascript - 多个 if 在 JavaScript 中做多件事

javascript - editableSelect() 在 ajax 方法后不会触发

javascript - Jquery方法?

javascript - JS add操作返回char+char,不是int+int

javascript - AngularJS - 为所有应用程序环境动态设置配置参数

javascript - iPhone - JavaScript 调度事件 - 我的选择菜单不会在 setTimeout 函数上打开

javascript - 在 CKEditor 中删除 HTML 元素

javascript - 根据用户输入修改雷达 Chart.js 中的值