[英]How to get text of div by id in variable
我有一個名為res的字符串變量。
在此變量內有HTML代碼。
內的每個Div in變量都有一個ID。
var res = "<div id="1">1</div>
<div id="2">12</div>
<div id="3">123</div>
<div id="4">1234</div>";
var content-div-1 = ??;
var content-div-2 = ??;
var content-div-3 = ??;
var content-div-4 = ??;
我想給出div的id並給我內部Div的值。
當您標記了問題jquery
,我假設這是在瀏覽器上下文(或其他帶DOM的上下文)中。 如果是這樣,最簡單的方法是解析HTML並使用產生的斷開連接的DOM樹:
var res = '<div id="1">1</div>' + '<div id="2">12</div>' + '<div id="3">123</div>' + '<div id="4">1234</div>'; var parsed = $(res); var contentDiv1 = parsed.filter("[id=1]").text(); // See note below snippet.log("1: " + contentDiv1); var contentDiv2 = parsed.filter("[id=2]").text(); // See note below snippet.log("2: " + contentDiv2); // ...and so on (or use a loop)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <!-- Script provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 --> <script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
注意:盡管以數字開頭的id
值是有效的HTML,但使用它們很#foo
,因為在CSS id
選擇器( #foo
)中,您不能以未轉義的數字開頭ID值(例如, #1
是無效的選擇器) 。 這就是為什么我不得不使用上面的屬性選擇器[id=1]
。 您可以通過轉義來解決此問題,但到目前為止,最好的選擇是不要以數字開頭的ID值開頭。
該問題已得到解答,但是還有一種不帶jQuery的選擇
var res = '<div id="1">1</div>'+
'<div id="2">12</div>'+
'<div id="3">123</div>'+
'<div id="4">1234</div>';
function findMe(txt, id){
var matches = txt.match(new RegExp('<div\\s+id="'+id+'">[\\S\\s]*?<\\/div>'), 'gi');
if(matches) return matches[0].replace(/(<\/?[^>]+>)/gi, '');
return '';
}
var content1 = findMe(res,1);
var content2 = findMe(res,2);
var content3 = findMe(res,3);
var content4 = findMe(res,4);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.