簡體   English   中英

如何在變量中通過id獲取div的文本

[英]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);

的jsfiddle

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM