我设法将另一个网页的表格转换为名为 res
的变量。
我需要通过 search
的过滤器传递此变量。
我使用 .parents()
获取对应的表格行。
当表格与jQuery位于同一页面时,此过滤器有效,但在使用 $.get()
时则无效。
以下是我的方法:
$.get('oncalltable.html', function(res) {
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var year = d.getFullYear();
var oncalldate = ((''+month).length<2 ? '0' : '') + month + '/' +
((''+day).length<2 ? '0' : '') + day + '/' + year % 100;
var search = oncalldate;
var todayoncall = $("span").filter(function() {
return $(this).text() == search;
}).parents('tr');
console.log(oncalldate, res, todayoncall);
$('.test span').append(todayoncall);
});
答案 0 :(得分:1)
JQuery选择器可以对抗DOM。 oncalltable.html不在DOM中,它只是一个恰好类似于HTML的变量中的文本。
我猜你希望你的$(&#34; span&#34;)选择器能够看到oncalltable.html的内容。它不会因为您正在寻找的<span>
(在oncalltable.html内)不在DOM中。
如果(并且仅当)您极为确信oncalltable.html中的数据现在并且始终完全值得信赖,您可以通过将该html加载到您的页面中将其添加到DOM中。
这样做的一种方法是分配&#39; res&#39;到一些现有页面元素的.innerHTML。 如果你已经(或决定制作)一个隐藏的div来保存你的数据,那么它就被解析了:
<div id="whereResGoes" style="display:none"></div>
然后在你传递给$ .get的函数中(就在使用$(&#39; span&#39;)选择器的部分上方),运行
$('whereResGoes').html(res);
现在它已加载到您的DOM中,您的$(&#39; span&#39;)选择器可以看到它。
请注意,由于此方法使oncalltable.html成为您网页的一部分,这就像让oncalltable.html的作者在您的网页上写下他们想要的任何内容一样。如果该页面遭到破坏,您的页面也会受到损害。