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

回到顶部