我已经使用了搜索..并尝试了很多东西..但我只是不让它工作。这是我的工作:
在更改select时,我以JSON格式请求一些数据。 之后,我调用一个函数:
if (result.events) {
$('#filter_result').trigger('put_result', result);
}
在put_results()中我构建了HTML:
$('#filter_result').bind('put_result', function (e, data) {
html = '<h1 class="header_dates">Termine</h1>';
// and some more
$(this).html(html).stop(true, true).stop(true, true).slideDown();
}
我现在要做的是修改#filter_result HTML的一部分。我想查看一个构建的内容,并获得价值。
插入的HTML标记如下所示:
<table>
<thead>
<tr>
<th>Großraum</th>
<th>Thema</th>
<th>Termin</th>
<th>Anmeldung</th>
</tr>
</thead>
<tbody>
<tr class="last">
<td class="key_0">Berlin</td>
<td class="key_1">273</td>
<td class="key_2">27.04.2012</td>
<td class="key_4"><a href="link/273.html" class="btn_jetzt_anmelden partnerallowed">Jetzt anmelden</a></td>
</tr>
</tbody>
</table>
为此,我编写了一个在“触发”行之后调用的函数。我想到了类似的东西:
function unsetlink(){
if(Date.parse($('.key_2').live().HTML()).equals(Date.today().add(2).days())) {
alert('false');
}
else {
alert('true');
}
}
我使用date.js进行日期比较。功能逻辑正在工作,这不是问题。它只是我认为我在错误的地方使用现场或类似的东西。我只是找不到答案..任何有用的东西都是受欢迎的。
谢谢。
答案 0 :(得分:1)
根据您的更新,并在调用内容时假设内容存在,该函数应为:
function unsetlink() {
if (Date.parse($('.key_2').text()).equals(Date.today().add(2).days())) {
alert('false');
} else {
alert('true');
}
}
以下是针对该功能的黑客攻击测试:http://jsfiddle.net/MarkSchultheiss/86mDa/
EDIT2:以下是处理多个注入内容组的示例:http://jsfiddle.net/MarkSchultheiss/86mDa/3/
以下是该示例中的代码:
function unsetlink(daysadvance) {
$('.key_2').each(function() {
if (Date.parse($(this).text()).equals(Date.today().add(daysadvance).days())) {
$(this).addClass('showFalse');
$('#me').text($(this).text());//this is just to show what we are processing currnetly
alert('false');
} else {
$(this).addClass('showTrue');
alert('true');
}
})
}
$('#me').after('<table><thead><tr><th>Großraum</th><th>Thema</th><th>Termin</th><th>Anmeldung</th></tr></thead><tbody><tr class="last"><td class="key_0">Berlin</td><td class="key_1">273</td><td class="key_2">27.04.2012</td><td class="key_4"><a href="273.html" class="btn_jetzt_anmelden partnerallowed">register</a></td></tr><tr class="last"><td class="key_0">Berlin</td><td class="key_1">273</td><td class="key_2">28.04.2012</td><td class="key_4"><a href="273.html" class="btn_jetzt_anmelden partnerallowed">register</a></td></tr></tbody></table>');
var daysadvance = 3;
unsetlink(daysadvance);
答案 1 :(得分:0)
我想您想要访问一些将添加到自定义事件put_result
内的DOM中的元素。
如果是这种情况,那么我建议你为put_result
事件编写一个回调函数,该事件将在你追加到DOM之后被调用。见下文,
$('#filter_result').bind('put_result', function (e, data, callback) {
html = '<h1 class="header_dates">Termine</h1>';
// and some more
$(this).html(html).stop(true, true).slideDown(); //removed one .stop(true, true)
callback(); //invoke the callback at the end or when needed accordingly
});
在触发器中,
//unsetlink is your callback function - Change it to an inner function
//if you want to do more and then call unsetlink at the end.
$('#filter_result').trigger('put_result', [result, unsetlink]);
将您的unsetlink
功能更改为
function unsetlink(){
if(Date.parse($('.key_2').text()).equals(Date.today().add(2).days())) {
alert('false');
} else {
alert('true');
}
}