2009-11-04 56 views
1

我更喜歡jQuery。如何從字符串創建UI列表?

比方說,我有一個字符串,

亞當,麗莎,約翰,莎拉

,我想將它們變成:

<ul><li>Adam</li><li>lisa</li><li>john</li><li>sarah</li></ul>

+0

請澄清問題,你想這個輸出到頁面?是處理這個字符串的jQuery?或者PHP在做它? – Jakub 2009-11-04 21:59:40

回答

5
"<ul><li>" + "adam, lisa, john, sarah".split(", ").join("</li><li>") + "</li></ul>" 

[編輯:]自從你提到jQuery以來,我就認爲是javascript。我不知道在PHP中使用它的最佳方式,但是您在php中使用preg_splitimplode

+0

如何在html/php文件中實現它? – neotorama 2009-11-04 22:04:15

2

使用jQuery的$.map功能:

var names = 'adam,lisa,john,sarah'; 
var html = '<ul>'+$.map(names.split(','), function(name){ 
    return '<li>'+name+'</li>' 
}).join('')+'</ul>'; 
+0

非常感謝你 – neotorama 2009-11-04 23:25:09

0

要做到這一點在PHP中,發生爆炸的字符串,使之成爲一個數組,然後使用array_map每個項目轉換爲L1標籤。一旦這樣做了,爆它來獲得期望的結果:

$items = explode(",", "adam,lisa,john,sarah"); 

array_map("makeLiTag", $items); 

echo("<ul>" . implode("", $items) . "</ul>"); 

function makeLiTag(&$item, $key) 
{ 
    $item = "<li>$item</li>"; 
} 
+0

我想你可能需要把回調函數作爲第一個參數? array_map('makeLiTag',$ items); – Stoosh 2010-08-01 09:07:25

+0

@Stoosh:你說得對,謝謝。 – 2010-08-03 13:25:34

2

或者你也可以做爆炸和foreach:

$array = explode(', ','adam, lisa, john, sarah'); 
foreach ($array as $name) { 
    $output .= '<li>' . $name . '</li>'; 
} 
echo '<ul>' . $output . '</ul>'; 

也許有點簡單。

編輯:更容易將是一個規則str_replace。

$list = '<ul><li>' . str_replace(', ','</li><li>','adam, lisa, john, sarah') . '</li></ul>'; 
echo $list;