使用 jQuery/Javascript 创建集合中所有元素的列表

发布于 2024-10-06 14:51:08 字数 382 浏览 3 评论 0原文

我想使用 Javascript 循环访问一组元素,并为每个元素创建一个标签列表,因此如果该组元素如下所示:

<h1>Title</h1>
<h2>Subheading</h2>
<p>Paragraph of text...</p>

它会给我以下内容:

<ol>
  <li>h1</li>
  <li>h2</li>
  <li>p</p>
<ol>

jQuery/Javascript 是否可以返回元素的类型为字符串,如果是这样我该怎么办?

I want to use Javascript to loop through a set of elements, and create a list of labels for each one, so if the set of elements were as follows:

<h1>Title</h1>
<h2>Subheading</h2>
<p>Paragraph of text...</p>

It would give me the following:

<ol>
  <li>h1</li>
  <li>h2</li>
  <li>p</p>
<ol>

Is it possible for jQuery/Javascript to return an element's type as a string, and if so how would I go about it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

国际总奸 2024-10-13 14:51:08

这远不是我做过的最干净的代码,但它有效:

function generateList(rootElement) {
    var rootElementItem = $("<li>" + rootElement.get(0).tagName + "</li>");

    if (rootElement.children().size() > 0) {
        var list = $("<ol />");
        rootElement.children().each(function() {
            list.append(generateList($(this)));
        });

        rootElementItem.append(list);
    }

    return rootElementItem;
}

var listOfElements = generateList($("body"));
$("body").append($("<ol/>").append(listOfElements));

演示: http://jsfiddle .net/jonathon/JvQKz/

它建立在之前给出的 this.tagName 答案的基础上,但它也会检查子项。这样它将建立给定元素的分层视图。该方法不会生成封闭的

    标记,因此它只能附加到现有标记。

This is far from the cleanest piece of code I've ever done, but it works:

function generateList(rootElement) {
    var rootElementItem = $("<li>" + rootElement.get(0).tagName + "</li>");

    if (rootElement.children().size() > 0) {
        var list = $("<ol />");
        rootElement.children().each(function() {
            list.append(generateList($(this)));
        });

        rootElementItem.append(list);
    }

    return rootElementItem;
}

var listOfElements = generateList($("body"));
$("body").append($("<ol/>").append(listOfElements));

Demo: http://jsfiddle.net/jonathon/JvQKz/

It builds upon the this.tagName answer that was previously given, but it checks for children also. This way it will build up a hierarchical view of the element given. The method doesn't generate the enclosing <ol/> tag so that it can just be appended to an existing one.

枫林﹌晚霞¤ 2024-10-13 14:51:08

我希望这个简单的解决方案有所帮助:
http://jsfiddle.net/neopreneur/n7xJC/

-html-

<h1>Title</h1>
<h2>Subheading</h2>
<p>Paragraph of text...</p>

-js-

$(function(){
    $('body *').each(function(){
        // append a 'ol' to body in order to output all tag names
        if(!$(this).parents('body').find('ol').length){
            $('body').append('<ol/>');  
        }

        // output the name of the tag (list item)
        $('ol').append('<li>' + this.tagName.toLowerCase() + '</li>');
    });
});

这适用于假设你有一个格式正确且带有 body 标记的 HTML 文档。

I hope this simple solution helps:
http://jsfiddle.net/neopreneur/n7xJC/

-html-

<h1>Title</h1>
<h2>Subheading</h2>
<p>Paragraph of text...</p>

-js-

$(function(){
    $('body *').each(function(){
        // append a 'ol' to body in order to output all tag names
        if(!$(this).parents('body').find('ol').length){
            $('body').append('<ol/>');  
        }

        // output the name of the tag (list item)
        $('ol').append('<li>' + this.tagName.toLowerCase() + '</li>');
    });
});

This works assuming you have a properly formed HTML document with a body tag.

假装不在乎 2024-10-13 14:51:08

示例

$('<ol />').append(function(index, html){

    var ret = $('<span />');
    $('body>*').each(function(i, el) {
        ret.append( $('<li />').html(this.tagName.toLowerCase()) );
    });

    return ret.html();

}).appendTo('body');

example

$('<ol />').append(function(index, html){

    var ret = $('<span />');
    $('body>*').each(function(i, el) {
        ret.append( $('<li />').html(this.tagName.toLowerCase()) );
    });

    return ret.html();

}).appendTo('body');
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文