实际上,我正在开发一个扩展程序,该扩展程序有助于在快速销售期间从flipkart购买产品。在产品页面上,我无法借助JavaScript单击“立即购买”按钮,它向我显示undefined
,这是“立即购买”按钮的代码:
<form><button class="_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c" type="button"><span class="_279WdV"></span> <!-- -->BUY NOW</button></form>
我正在使用代码单击我的JavaScript文件中的此按钮
$("._2AkmmA._2Npkh4._2kuvG8._7UHT_c").click();
但是,即使我转到the page on the site并在控制台中执行,
$("._2AkmmA._2Npkh4._2kuvG8._7UHT_c").click();
控制台显示undefined
,并且不会启动通过手动使用鼠标单击“立即购买”按钮启动的“立即购买”过程。在控制台中,执行
$("._2AkmmA._2Npkh4._2kuvG8._7UHT_c");
显示:
<button class="_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c" type="button"><span class="_279WdV"></span> <!-- -->BUY NOW</button>
这是我希望以编程方式单击的正确按钮。请注意,即使我使用$()
,返回的也是不是 jQuery对象。
如果我手动单击该按钮,则会显示“立即购买”对话框。您可以转到this page并自己尝试。
答案 0 :(得分:-1)
我认为您必须像这样在jQuery中使用多类选择器:
$("._2AkmmA, ._2Npkh4, ._2kuvG8, _7UHT_c").click()
如您所见,我在课堂之间使用,
或像这样减少班级:
$("._2AkmmA").click()
答案 1 :(得分:-1)
您的代码可能在DOM完全加载之前正在运行。
尝试用$(document).ready(function(){...
包装代码,这将确保仅在页面文档对象模型(DOM)准备好后,内部代码才能运行。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("._2AkmmA._2Npkh4._2kuvG8._7UHT_c").click();
});
function test(){
alert('clicked');
}
</script>
<form><button class="_2AkmmA _2Npkh4 _2kuvG8 _7UHT_c" type="button" onclick="test()"><span class="_279WdV"></span> <!-- -->BUY NOW</button></form>
答案 2 :(得分:-1)
仅当所有元素都已满载时,才必须调用代码,否则它将找不到。您必须像这样包裹JQuery
:
$(document).ready(function(){
$("._2AkmmA._2Npkh4._2kuvG8._7UHT_c").click();
});