非常感谢Abhas Tandon使用
提供此功能$(this).trigger('click');
而不是
$(this).addClass('selected');
它会正确选择图像。我测试了一个由21个图像组成的板,它工作得很完美!但是,当试图移动300多个引脚时,它失败并出现此错误:
"You can only move 50 Pins at a time."
然后,我通过使用JavaScript的 slice()函数来解决该问题,仅获取前50个图像。经过测试,现在可以正常使用。所以我的目标是,我一次只能选择并移动50个针脚,但这比用手一个一个地挑选它们要好得多!
function checkAll() {
console.log("Checkboxes count: " + checkBoxes.length);
$.each(checkBoxes, function(i, v) {
console.log("Checkbox #: " + i)// + " = " + v);
$(this).trigger('click');
});
}
var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");
var checkBoxes = checkBoxes.slice(1, 51);
checkAll();
我在使用Pinterest接口(?)脚本(?)时遇到了一些问题我正在开发中。我是一名程序员,大多是自学成才,我想我可能缺少一些关于AJAX理解的关键部分?这是我第二次尝试编写一个jQuery脚本来与Pinterest进行交互。第一个尝试打败无限滚动功能(AKA“加载更多”按钮),以便将所有图像显示在一个页面上,我可以从中抓取图像链接,然后使用浏览器插件下载它们以备份我的Pinterest登上我的电脑。我的代码全部工作,除了它实际上没有下载任何图像。
失望,我暂时停下来专注于其他事情。最后,我重新访问了我的代码并进行了一些挖掘,它应该有效。我的研究表明,可能阻止我的程序做我想做的关键FLAW就是“Pinterest使用AJAX”。虽然我知道“使用XML的异步JavaScript”和“XMLHttpRequest”这两个术语,但我在实施AJAX时并不是专家。
使用我的最新代码,我写了一个 - 你会认为它是 - 快速的小jQuery脚本来选择所有图像,以便我可以移动它们,删除,复制等...问题是,虽然检查所有的盒子都可以工作(例如你必须在一块板子上点击“移动”),当我再次单击“移动”按钮时,应弹出一个模态,让我们选择移动到哪个板,我得到的只是是
Oops!
Select the Pins you want to move.
注意:我现在并不关心分页,但是如果有人想解决这个问题,我也会对这个问题的解决方案持开放态度。
/*
@Repo: EHW-JavaScript-Pinterest-SelectAllImages.
@Creator: Eric Hepperle (CodeSlayer2010/CodeWizard13)
@Date: 10/15/15
@Version: 1.0
@Purpose: Click "Move" in Pinterest board to move pins.
Once checkboxes are visible, run this in an
F12 browser console to automatically check all
visible image pins. You will have success when
the color of all checkboxes turns red. Then
click "Move" again to finish.
@Notes:
2015.10.15
- Created script.
- Checks all checkboxes, but does not allow moving.
*/
function checkAll() {
console.log("Checkboxes count: " + checkBoxes.length);
$.each(checkBoxes, function(i, v) {
console.log("Checkbox #: " + i)// + " = " + v);
$(this).addClass('selected');
});
}
//$(document).ready(function() {
alert('hi');
var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");
checkAll();
//});
用Google搜索解决方案。我发现了以下文章。最后一个似乎可能就是我所需要的,但它在我的问题上似乎没有足够的重点。
最初尝试将每个复选框的“已检查”属性设置为“true”,但它最终没有检查框(为什么??)。但是,我在浏览器控制台中观察到,当我点击选择图像时,“选定”类被应用于该图像。所以,我使用addClass()将该类应用于我的代码中的所有复选框,并且我能够正确选择所有复选框,然后......或者看起来好像。
我通过调用$(document).ready来尝试代码,但它给了我错误
"Uncaught ReferenceError: checkBoxes is not defined(…)"
我花了很长时间来格式化这一点......在此先感谢您的帮助。我很高兴澄清是否有任何不清楚的地方。另外,如果此帖子属于其他论坛,请告诉我。感谢。
答案 0 :(得分:1)
我尝试在每个元素上触发click
事件,它对我来说非常合适。无法尝试使用滚动,因为我的主板上没有那么多图像。
function checkAll() {
console.log("Checkboxes count: " + checkBoxes.length);
$.each(checkBoxes, function(i, v) {
console.log("Checkbox #: " + i) // + " = " + v);
$(this).trigger('click');
});
}
var checkBoxes = $("div > div > div.bulkEditPinWrapper > button");
checkAll();
让我知道它是否适合你。