我是一个JS新手所以要温柔。
我正在开发一个简单的脚本,该脚本从我本地Intranet上的另一个网页读取值。
Intranet主页(index.php):
<div id="username">my.username</div>
的script.js:
$(document.body).load('http://intranet/index.php #username');
现在,我想知道,如何只显示此值,如何将其存储在变量中?
答案 0 :(得分:3)
您希望使用ajax查询它,然后解析该HTML,然后在解析的HTML中找到该元素并提取其文本:
$.ajax({
url: 'http://intranet/index.php',
success: function(html) {
var nodes = $.parseHTML(html);
var username = $("<div>").append(nodes).find("#username").text();
console.log(username);
}
});
以下是使用静态HTML字符串的解析/查找部分的示例:
var html = '<html><body><div>foo<div id="username">my.username</div></div></body></html>';
var nodes = $.parseHTML(html);
var username = $("<div>").append(nodes).find("#username").text();
console.log(username);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
或没有包装div
:
// Test finding it nested
test('<html><body><div>foo<div id="username">my.username</div></div></body></html>');
// Test finding it top-level
test('<div>foo</div><div id="username">my.username</div><div>bar</div>');
function test(html) {
var username = null;
$.parseHTML(html).some(function(node) {
if (node.id === "username") {
username = $(node).text();
return true;
}
node = $(node).find("#username");
if (node[0]) {
username = node.text();
return true;
}
});
console.log(username);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
您可以看到我使用包装器div
的原因。 : - )