使用jquery更改标记的属性

时间:2010-02-28 02:08:24

标签: 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 个答案:

答案 0 :(得分:2)

一些事情:

  1. 使用css()设置样式属性;
  2. 由于<ul>位于list元素中,因此粗体也将应用于子列表元素。
  3. 所以你有两个选择:

    1. 将文字换成<span>;或
    2. 将字体粗细设置为粗体,然后将子列表元素设置为字体粗细正常。
    3. 对于第一个,只获取文本节点有点棘手但可以完成。尝试:

      $("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"});