是否可以从定义的字符串中进行选择?例如:
str = "<li>Some text...</li>";
现在我想使用str变量在“li”标签之间获取该文本 作为输入。我尝试过类似的东西,但它不起作用:
$(str + 'li').html();
有什么想法吗?
答案 0 :(得分:3)
试试这个
$(str).html()
正如评论中所指出的,值得一提的是html()和text()之间的区别。
text()将“获取匹配元素集合中每个元素的组合文本内容,包括它们的后代。”
html()将“获取匹配元素集中第一个元素的HTML内容。”
在实践中,这将是这样的:
str = "<li>This is so <span>great!</span></li>"
$(str).html() // "This is so <span>great!</span>"
$(str).text() // "This is so great!"
答案 1 :(得分:1)
str = "<li>Some text...</li>";
$(str).text();
答案 2 :(得分:1)
要查找内部<li>
的HTML,请执行以下操作:
var str = "<div>hello</div><ul><li>Some text...</li><li>second item</li></ul>";
var myText = $(str).find("li").html();
(请注意,这将只为您提供第一个列表项的内部HTML)
编辑:看起来更像“复杂”的东西,你必须将HTML添加到实际的DOM中,以便jQuery能够正确地解析它。
为此,请在文档中添加“dummy”容器:
<div id="DummyContainer"></div>
然后改为使用这样的代码:
var str = '<div>hello</div><ul><li>Some text...</li><li>second item</li></ul><input type="hidden" name="some_int" value="15" />';
var container = $("#DummyContainer");
container.hide().html(str);
var myVal = container.find("input").val();
alert(myVal);
答案 3 :(得分:0)
尝试:
alert($('<li>Some text...</li>').text());