-2

<li>JavaScript 文字列内に存在する数値 s を見つけたいです。

たとえば。もしも、

var lis = "`<ul><li><a href='http://sitename/profile/udhayakumar'>udhayakumar</a></li><li><a href='http://sitename/profile/lovely'>lovely</a></li></ul>`";

次に、タグ<li>内の の数を見つける方法。<ul>DOM要素に挿入せずにこれを取得することは可能ですか?

4

3 に答える 3

5

「DOM要素なしで可能」とはどういう意味かわかりません。ページのメイン DOM ツリーを使用せずに可能であるという意味であれば (これは理解できます)、はい。

別の切断されたツリー、または単に切断されたサブツリーを使用する場合、これを行いたくないということは理解できません。

var lis = "<ul><li><a href='http://example.org/profile/udhayakumar'>udhayakumar</a></li><li><a href='http://example.org/profile/lovely'>lovely</a></li></ul>";
var dom = document.implementation && document.implementation.createHTMLDocument("").body || document.createElement("body");
dom.innerHTML = lis;
alert(dom.getElementsByTagName("li").length);

http://jsfiddle.net/HrcuF/

于 2012-08-10T13:14:42.163 に答える
1

正規表現を使用できます。<li>非常に複雑な正規表現を考え出さない限り、特殊なケース (例: HTML の文字列内のタグ)を除外するのは難しいことに注意してください。ただし、予想される入力のタイプについて十分に理解している場合は、このようなケースを安全に無視できる場合があります。

1. の数を数える<li>:

var pattern = /.*?(<li>)/g;
var count = 0;
var result = pattern.exec(lis);
while(result != null) {
   count++;
   result = pattern.exec(lis);
}
于 2012-08-10T13:18:48.637 に答える
-1

jqueryがある場合は、次のようにすることができます

$(lis).find('li').length
于 2012-08-10T13:14:34.550 に答える