1

私はこのような文字列を持っています:

var My_string = "<div id='some_id_1'>Some Div Text 1</div><div id='some_id_2'>Some Div Text 2</div><div id='some_id_3'>Some Div Text 3</div><div id='some_id_4'>Some Div Text 4</div>";

文字列を検索して、見つかった各完全なdivを配列に追加したいと思います。

だから私は文字列で検索したい:

"<div" 

その後:

"</div>" 

間にあるテキストを取得します。

var My_Div_Value = "<div id='some_id_1'>Some Div Text 1</div>";

それぞれを配列にプッシュします。

My_Divs_Array.push(My_Div_Value);

したがって、My_Divs_Arrayには次のようになります。

["<div id='some_id_1'>Some Div Text 1</div>", "<div id='some_id_2'>Some Div Text 2</div>", "<div id='some_id_3'>Some Div Text 3</div>", "<div id='some_id_4'>Some Div Text 4</div>"]

私はこれについて行くための最良の方法がわかりません。「 IndexOf() 」を使用することを想像します。または、よくわかりません。これを達成するための最良の方法は何であるかをプロに聞いてみたいと思います。


最初の回答から-私の投稿が理解されているかどうかはわかりません。文字列の例を簡単に使用できたはずです。

var My_string = "<foo>everything in between</bar><foo>everything in between</bar><foo>everything in between</bar><foo>everything in between</bar>";

"<foo>"+ "everything in between"+ の各インスタンスを"</bar>"個別に収集"<foo>everything in between</bar>"し、配列に格納する必要があります。

["<foo>everything in between</bar>", "<foo>everything in between</bar>", "<foo>everything in between</bar>", "<foo>everything in between</bar>"]

ご協力いただきありがとうございます。よろしく、ケン

4

3 に答える 3

2

代わりにDOMを使用してください。

var My_string = "<div id='some_id_1'>Some Div Text 1</div><div id='some_id_2'>Some Div Text 2</div><div id='some_id_3'>Some Div Text 3</div><div id='some_id_4'>Some Div Text 4</div>";

var wrapper = document.createElement('div');
wrapper.innerHTML = My_string;

console.log(wrapper.getElementsByTagName('div')); // get all the div
console.log(wrapper.getElementById('some_id_1')); // if you know the id

またはjQueryを使用します。

$(My_string)
于 2012-10-04T04:04:40.820 に答える
0

xdazzの応答に追加するには:

var My_string = "<div id='some_id_1'>Some Div Text 1</div><div id='some_id_2'>Some Div Text 2</div><div id='some_id_3'>Some Div Text 3</div><div id='some_id_4'>Some Div Text 4</div>";

var wrapper = document.createElement('div'); Creates a DOM object.
wrapper.innerHTML = My_string; // Loads the string into DOM as HTML.
var objs = wrapper.getElementsByTagName('div'); // Get all the objects (each div tag element).

var My_Divs_Array; // Declare your output array.
for (var i = 0; i < objs.length; i++) { // Iterate through array of div elements.
    My_Divs_Array.push(objs[i].outerHTML); // Push the entire text portion of the div elements into array My_Divs_Array.
}
// Do what you want with My_Divs_Array, which now holds the strings that you want.

Webページ自体で何もする必要はありません。文字列を処理するために使用しているのは、DOMとそのHTML要素の解析メソッドのみです。

チェックアウト:https ://developer.mozilla.org/en-US/docs/DOM/element.outerHTML

編集しました。

于 2012-10-04T04:21:18.367 に答える
0
var str = "<div id='some_id_1'>Some Div Text 1</div><div id='some_id_2'>Some Div Text 2</div><div id='some_id_3'>Some Div Text 3</div><div id='some_id_4'>Some Div Text 4</div>";

var Array_Of_Divs = str.split(/(?=<div )/);

alert(Array_Of_Divs);

生成:

["<div id='some_id_1'>Some Div Text 1</div>", "<div id='some_id_2'>Some Div Text 2</div>", "<div id='some_id_3'>Some Div Text 3</div>", "<div id='some_id_4'>Some Div Text 4</div>"];

まさに私が求めていたもの:)

どうもありがとう:Namida Aneskanshttps://stackoverflow.com/users/1662018/namida-aneskansjavascript- セパレーター を失うことなく分割

于 2012-10-04T07:26:03.317 に答える