2010-02-28 133 views
0

我有这个html代码,我想用jQuery编辑。 下面是HTML。用jquery更改标签的属性

<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 

回答

2

有几件事情:

  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"}); 
+0

的作品却改变了一切大胆,我只想影响的第一个项目是比较250,Comp345,Comp431 – Zerobu 2010-02-28 02:14:20

+0

我忘了提及,我正在做的任何jquery正在准备功能,将有所作为? – Zerobu 2010-02-28 02:16:42

+1

将此增加到取消粗体子列表 '$( “OL李丽”)的CSS({fontWeight设置: “正常”});' – 2010-02-28 02:17:48