0

我有以下代码:

<li>This is 
  <div class="item1">item1</div>
  <div class="item3">item3</div>
  <div class="item2">item2</div>
a test</li>​

我想把 li 安排如下<li>This is a test | div item1 | div item2 | div item3 </li>

不使用javascript是否可以做到这一点?只有css吗?如果没有,您可以提供 javascript 中的示例吗?

谢谢

4

3 回答 3

1

http://jsfiddle.net/LceqM/

var li = document.getElementById("theli"),
    textNodes = [], first;

var elem = li.firstChild;

while( elem ) {
    if( elem.nodeType === 3 ) textNodes.push(elem);
    elem = elem.nextSibling;
}

if( textNodes.length ) {
    first = textNodes.shift();
    li.insertBefore( first, li.firstChild );

    while( textNodes.length ) {
        li.insertBefore( textNodes.pop(), first.nextSibling );   
    }
}

​</p>

于 2012-06-10T19:34:58.710 回答
0

您可以使用以下 js 代码更改 html 标记的内部 Html:

document.getElementById("yourliid").innerHTML = "new value of html that you want"
于 2012-06-10T19:22:47.097 回答
0

将您的 HTML 设置为:

<li>This is a test
  <div class="item1">item1</div>
  <div class="item3">item3</div>
  <div class="item2">item2</div>
</li>​

然后申请

​li div {
    display: inline-block;
    padding: 0 1ex;
    border-left: 1px solid black;     
}​

选项二:在您的 HTML 周围添加一个包装器 div:

<li>This is
  <div class="container">
    <div class="item1">item1</div>
    <div class="item3">item3</div>
    <div class="item2">item2</div>
  </div>
  a test
</li>​
​li .container {
    float: right;
}​
​li .container div {
    float: left;
    margin-right: 5px;
}​
于 2012-06-10T19:23:55.783 回答