jQuery的 - 应用CSS样式输入元素
我想检查所有链接,并更改断开的链接字段的背景颜色。 这里是我的功能jQuery的 - 应用CSS样式输入元素
function CheckLinks(){ $('#new_post_links_table tbody>tr').find("input").each(function() {
UrlExists($(this).val(), function(status){
if(status === 404){
$(this).css('background-color','#FC0');
}
}); });}
输入域看起来是这样的:
<table id="new_post_links_table"> ...
<td><input type="text" name="mp3_link[]"/></td>
<td><input type="text" name="mp4_link[]"/></td>
</tr>
</tbody>
</table>
出于某种原因,CSS是不适用。
注意:除了$(this).css...
零件外,我的CheckLinks功能确实有效。 (FireBug'ed)
注:行添加动态
编辑:下面是函数:
function UrlExists(url, cb){ jQuery.ajax({
url: url,
dataType: 'text',
type: 'GET',
complete: function(xhr){
if(typeof cb === 'function')
cb.apply(this, [xhr.status]);
}
});
}
回答:
夫妇的事情是错误的。您在$(this).val
的调用中未包含()
,并且您在回调中的this
引用不引用预期的元素。
function CheckLinks(){ $('#new_post_links_table tbody > tr')
.find("input")
.each(function(index, element) {
UrlExists($(this).val(), function(status){
if(status === 404) $(element).css('background-color','#FC0');
});
});
}
请记住,当你这样做时,你可能会碰到一些Access-Control-Allow-Origin
。
您可能想要修改您的UrlExists
函数以通过服务器上的代理脚本运行。你可以做类似如下:
$.getJSON('checklink.php', { location: url }, function (data) { callback.apply(null, data.status);
});
在你的后端,测试网址和发送通过JSON响应:
$response = array( 'location' => $location,
'status' => $status
);
echo json_encode($response);
这样你的JavaScript和你的后端连通,并且起源控制没有问题。
回答:
我的感觉是,这不再是指输入。您应该添加一个变量来存储输入,以便在关闭时访问它
var input = $(this); UrlExists($(this).val(), function(status){
if(status === 404){
input.css('background-color','#FC0');
}
});
回答:
该函数是否知道有动态添加行?而之前我有类似的问题。问题是,jQuery不知道有一些内容添加了新行。尝试控制$(this)下的函数并告诉我们你得到了什么结果。
以上是 jQuery的 - 应用CSS样式输入元素 的全部内容, 来源链接: utcz.com/qa/261516.html