循环遍历变量中的元素

如何循环存储在’ul’标签的变量中的HTML? 这是我到目前为止,但警报()甚至没有触发,我有点迷失…

var data = 'HTML'; $('ul', data).each(function(i,v) { var theTag = v.tagName; var theElement = $(v); var theValue = theElement.html(); alert(theTag+'\n'+theElement+'\n'+theValue); }); 

谢谢

您正在尝试使用$()调用的“selector,context”forms:

jQuery(selector [,context])
selector包含选择器表达式的字符串
context用作上下文的DOM元素,Document或jQuery

HTML字符串与context应该是的任何内容都不匹配,因此jQuery不知道如何处理您的参数并做出错误的猜测。

你可能想这样做:

 $(data).filter('ul').each(function(i,v) { //... }); 

演示: http : //jsfiddle.net/ambiguous/gxGB8/

或者,如果您不知道

    元素的级别,请将HTML包装在

    并使用 find而不是filter

     $('
    ' + data + '
    ').find('ul').each(function(i, v) { //... });

    演示: http : //jsfiddle.net/ambiguous/tM4ua/

    .val()返回表单输入的值。
    它不适用于任意元素。

    你想要.text().html()

    编辑 :要在HTML字符串中查找元素,您应该写$(html).find('ul')

    尝试从ul选择器中删除数据上下文范围

    试试这个:

     $('ul').each(function() { // Gets underlying element object var theElement = $(this).get(0); var theTag = theElement.tagName; // Can also use .text() if you want just the textual content var theValue = $(this).html(); // theElement can't be printed, it's an object alert(theTag+'\n'+theValue); }); 

    我在这里假设你想要一些

      标签的内容,而不是单个列表的

    • 部分。

      检查这个小提琴

      它可以帮助!