如何循环存储在'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);
});
由于
答案 0 :(得分:6)
您正在尝试使用$()
call:
jQuery(selector [,context])
selector 包含选择器表达式
的字符串 context 要用作上下文的DOM元素,文档或jQuery
HTML字符串与context
应该是的任何内容都不匹配,因此jQuery不知道如何处理您的参数并做出错误的猜测。
你可能想这样做:
$(data).filter('ul').each(function(i,v) {
//...
});
演示:http://jsfiddle.net/ambiguous/gxGB8/
或者,如果你不是't know at what level the <ul>
elements will be, wrap the HTML in a <div>
and use find
而不是filter
:
$('<div>' + data + '</div>').find('ul').each(function(i, v) {
//...
});
答案 1 :(得分:2)
.val()
返回表单输入的值
它不适用于任意元素。
您需要.text()
或.html()
。
编辑:要查找HTML字符串中的元素,您应该写$(html).find('ul')
答案 2 :(得分:0)
尝试从ul ul选择器中删除数据上下文范围
答案 3 :(得分:0)
试试这个:
$('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);
});
我在这里假设你想要一些<ul>
标签的内容,而不是单个列表的<li>
部分。
答案 4 :(得分:0)
选中此fiddle
这可能会有所帮助!