我有一个html结构,有点像
<div>
<div id="mydiv">
<h3>
This is a Test Page
</h3>
<div>I am inside a div</div>
<a href="http://www.google.com">Click me</a>
<div>Second div</div>
</div>
</div>
和一个脚本:
$(function () {
var elm = document.getElementById("mydiv").innerHTML;// can use html()of jquery
alert(elm);
});
现在elm在代码下打印/提醒:
<h3>
This is a Test Page
</h3>
<div>I am inside a div</div>
<a href="http://www.google.com">Click me</a>
<div>Second div</div>
现在我的问题是获取价值/访问“h3”/“a”
的方法是什么 来自var elm的标签。 注意:我想使用elm。[我知道这很容易通过
完成 $("#mydiv h3")]
所以只想使用var elm .... sln可以在jQuery / javascript中使用。
答案 0 :(得分:3)
解决方案是:
$(function () {
var elm = document.getElementById("mydiv");
alert($(elm).find('h3').text());
});
我想你写了
var elm = document.getElementById(“mydiv”) .innerHTML ;
有关正在运行的示例,请参阅here。
答案 1 :(得分:2)
尝试在 html字符串中搜索h3或锚点不起作用(就像建议的其他解决方案一样)。您需要更改代码,以便将“mydiv”元素作为jQuery对象,然后在其中搜索:
var elm = $('#mydiv');
alert(elm.html());
alert(elm.find('h3').text());
<强>更新强>
如果你真的想在字符串中加载html并解析它,你可以执行以下操作:
$(function () {
// This is just a plain string of HTML now
var html = document.getElementById("mydiv").innerHTML;
// Add it to a hidden DOM element
var hidden = $("<div/>").hide().appendTo("body");
// Add the html, replacing the duplicate ID
hidden.append(html.replace(/mydiv/, "mydiv2"));
// Get the values
alert(hidden.find("h3").text());
alert(hidden.find("a").text());
// Destroy holder
hidden.remove();
});
答案 2 :(得分:1)
Vincent和Lance McNearney的答案显示了如何解决您的问题。要回答您的确切问题,不能让您无法访问elm
中的“h3”/“a”
元素你想要的方式。 elm
是一个基于您的html的字符串,并且与DOM无关。您可以解析它以找到h3标记的值(不太优雅),但您无法将该标记绑定到DOM中存在的真实标记。
答案 3 :(得分:0)
$(elm).find("h3")