以精确文本匹配为目标(jQuery)
我需要通过精确的文本匹配来定位多个类。我的一半代码似乎可以工作(当复选框未选中时,文本有一个紫色背景),但当选中复选框以文本为目标时,似乎什么都没有发生以精确文本匹配为目标(jQuery),jquery,filter,match,target,Jquery,Filter,Match,Target,我需要通过精确的文本匹配来定位多个类。我的一半代码似乎可以工作(当复选框未选中时,文本有一个紫色背景),但当选中复选框以文本为目标时,似乎什么都没有发生 if ($("input:checkbox:checked#checkbox-id").length > 0) { $('#main-content-panel .entry').filter(function(index) { return $(this).text() == "Text"; }).cs
if ($("input:checkbox:checked#checkbox-id").length > 0) {
$('#main-content-panel .entry').filter(function(index) {
return $(this).text() == "Text"; }).css
('backgroundColor', 'orange');
}
if ($("input:checkbox:not(:checked)#checkbox-id").length > 0) {
$('#main-content-panel .entry').filter(function(index) {
return $(this).text() == "Text"; }).css
('backgroundColor', 'purple');
}
jsIDLE:您应该收听
更改事件:
var $elem = $('#main-content-panel .entry').filter(function (index) {
return $(this).text() == "Text";
});
$('#checkbox-id').change(function () {
var color = this.checked ? 'orange' : 'purple';
$elem.css('backgroundColor', color);
}).change();
您忘记添加onchange事件处理程序
onchange="run()">
也将代码包装到函数中,如下所示
run = function () {
if ($("input:checkbox:checked#checkbox-id").length > 0) {
$('#main-content-panel .entry').filter(function(index) {
return $(this).text() == "Text"; }).css
('backgroundColor', 'orange');
}
if ($("input:checkbox:not(:checked)#checkbox-id").length > 0) {
$('#main-content-panel .entry').filter(function(index) {
return $(this).text() == "Text"; }).css
('backgroundColor', 'purple');
}
}
run();
你还没有在复选框更改时触发事件吗?您希望发生什么?对于第一段代码,我试图说,“如果选中复选框,请将背景颜色更改为橙色”。在小提琴中效果很好,但在我的代码中,当我选中复选框时,什么都没有发生。。。嗯……是的,不幸的是它没有帮助:/谢谢你的建议和帮助,还有什么可以防止这种情况发生吗?我看不到与此代码相关的错误。我不明白为什么它不能工作…@Chris我能看到与此代码相关的错误吗?你是说有错误吗?某些错误会阻止整个代码的执行。时间戳:25/01/2013 01:00:30错误:[异常…“JavaScript组件在调用方法:[nsIDOMEventListener::handleEvent]“nsresult:”0x8057030(NS_Error_XPC_JSOBJECT_没有函数_命名)”位置:“数据:否]您错误地复制了代码,并且没有将onchange事件处理程序放入。啊,谢谢你的小提琴。你的建议在我的代码中效果很好,但我也不知道为什么。我必须从另一个角度来处理我的问题。谢谢你抽出时间。