2013-02-12 69 views
-2

如何在標籤存儲爲字符串時獲取標籤的文本值?JS - 標籤的文本值 - 當標籤是字符串時

var value = "<div>teeext</div>"; 

標籤可以是任何東西,它的屬性可能含有「>」字符串爲好,正則表達式可能是危險的 - 也文本值本身可以是另一個標籤。

+0

當你說「標記存儲爲字符串」時,你是什麼意思?另外,你有什麼嘗試? – 2013-02-12 08:46:16

+0

整個html元素都存儲在一個變量中 - 如示例所示。 – 2013-02-12 08:46:49

+1

請閱讀:http://whathaveyoutried.com – 2013-02-12 08:47:19

回答

0

你可以做一個虛設的元素:

var value = "<div>teeext</div>"; 

var div = document.createElement('div'); 
div.innerHTML = value; 

var text = div.innerText || div.textContent; 
+0

是否可以在不操作文檔的情況下得到結果? – 2013-02-12 08:56:02

+0

@ user1977315:您沒有操作文檔。 – Blender 2013-02-12 08:57:01

0

我猜你試圖剝去標籤。在這種情況下,你可以做這樣的:

originalString = "<div>teeext</div>"; 
var value = originalString.replace(/(<([^>]+)>)/ig,""); 

測試出來。如果您需要處理任何異常情況,請在此處發表評論,我會盡力爲您提供幫助。

多標籤讀取編輯:

originalString = "<div>teeext</div>"; 
outputString = originalString; 
while (outputString.indexOf(/(<([^>]+)>)/ig) !== -1){ 
    outputString = outputString.replace(/(<([^>]+)>)/ig,""); 
    } 
value = outputString; 

沒有測試它,但你明白了吧;)

+0

爲此:「

teeext
」:我想看到這個:「
teeext
」 – 2013-02-12 08:55:14

+0

編輯..測試它.. – Dropout 2013-02-12 08:58:10

+0

你想看到,或者你會看到嗎?你是否試圖去掉所有的標籤? – Dropout 2013-02-12 09:04:20

0

只需使用JavaScript的:

var div = document.createElement('div'); 
    var value = "<div>teeext</div>"; 
    div.innerHTML = value; 
    var element = div.firstChild 

    console.log(element.innerHTML); //this the stuff in the tag 

U唱jquery:

$(value).html(); 
0

這是否有助於作爲首發?

function getText(tagString) { 
    var firstOpenTag = tagString.indexOf(">"), 
     lastCloseTag = tagString.lastIndexOf("</"), 
     substrLength; 

    if (firstOpenTag == -1 || lastCloseTag == -1) { 
     return tagString; 
    } 

    substrLength = (tagString.length - firstOpenTag) - (tagString.length - lastCloseTag) - 1; 
    return tagString.substr(firstOpenTag + 1, substrLength); 
} 

var value = "<div>teeext</div>"; 

console.log(getText(value)); 

var moreTags = "<div><ul><li>Text</li></ul></div>", 
    returnValue = moreTags, 
    prevReturnValue = ""; 

while (returnValue !== prevReturnValue) { 
    prevReturnValue = returnValue; 
    returnValue = getText(returnValue); 
} 

console.log(returnValue);