2013-02-26 68 views
2

我是jQuery的新手,仍然在學習正確的方式來做事。從body元素中提取類的最好方法是什麼?如何使用jQuery從body元素中提取類?

具體我想提取的WordPress頁的帖子ID(看起來像這樣:

<body class="single single-project postid-20 logged-in"> 

因此,我可以將它插入到新的3.5上傳

+0

爲什麼不使用php? – undefined 2013-02-26 22:46:54

+0

新模型需要JavaScript pid才能將附件關聯到正確的帖子。我正在使用邁克喬利的劇本... http://mikejolley.com/2012/12/using-the-new-wordpress-3-5-media-uploader-in-plugins/ – torinagrippa 2013-02-26 22:48:51

回答

2

無需jQuery的所有(它不以任何方式幫助)。你可以只用在類名正則表達式:

var id, matches = document.body.className.match(/(^|\s)postid-(\d+)(\s|$)/); 
if (matches) { 
    // found the id 
    id = matches[2]; 
} 

注:這正則表達式是比其他人更小心,因爲它需要之前就是它的匹配(字符串的空白或者是/結束)後,類名分隔符。

工作演示:http://jsfiddle.net/jfriend00/JcDtJ/

+0

假設它將被用於利用jQuery的腳本應該仍然嘗試在基本的JavaScript中編寫? (我不知道...) – torinagrippa 2013-02-26 22:52:16

+0

@mattrepublic - 你應該使用jQuery,當它使事情變得更容易或更快,並且只有這樣。 jQuery只是一個JavaScript庫,所以一切都是JavaScript。你應該在圖書館幫助你正在做的事情時使用圖書館,而不是在沒有時間的情況下使用圖書館 – jfriend00 2013-02-26 22:54:35

1

你可以得到的類對身體的需要,像這樣:

$('body').attr('class'); 

然而,這將返回字符串single single-project postid-20 logged-in然後,您可以採取的字符串,並得到你想要的類的各種方法。我傾向於避免正則表達式,並很可能會像這樣的東西去:

演示:http://jsfiddle.net/p6Ksd/

var postid;  
$.each($('body').attr('class').split(' '), function (index, className) { 
    if (className.indexOf('postid') === 0) { 
     postid = className; 
    } 
}); 
+0

oops錯誤的編輯,對不起:) – 2013-02-26 22:55:12

+0

沒問題。我有點困惑:)。 – Cymen 2013-02-26 23:01:38

相關問題