背景:我买了这个WordPress插件的事件预订。很明显,作者觉得在添加超过1张票或申请优惠券后,价格更新等事情是不必要的,所以我正试图自己写一个快速而肮脏的解决方案。它收取的价格是正确的,但我认为人们在提交信用卡之前应该看到最终价格。您可以在行动中看到这里(只是尝试增加超过1票)https://hellbentbbq.ca/events/ultimate-pork/javascript getelementsByClassName - undefined []
我的快速和肮脏的黑客的做法是 1)观看的门票选择要更改 2)留意优惠券代码成功
我开始用#1和试图获得以下工作:
`document.getElementsByClassName('em-ticket-select').onchange=function(){ updatePrice() };
console.log(document.getElementsByClassName('em-ticket-select'));
function updatePrice(){
price=document.getElementById('theprice');
alert(price);
}
`
我已经添加了刚才的console.log这样我就可以具体是什么,我选择理解,但出于某种原因,我可以似乎没有选择html集合中的任何项目?
我想我可以去:
document.getElementsByClassName( 'EM-票选择')[0],得到我想要的元素,但显然不是 - 结果是不确定的。没有[0]这里是什么被记录到控制台:
HTMLCollection[0]
0
:
select#em-ticket-spaces-5.em-ticket-select
em-ticket-spaces-5
:
select#em-ticket-spaces-5.em-ticket-select
em_tickets[5][spaces]
:
select#em-ticket-spaces-5.em-ticket-select
length
:
1
onchange
:
()
__proto__
:
HTMLCollection
任何方向我哪里去错了赞赏。
我意识到,如果我可以通过ID选择元素会更容易,但ID是动态生成的,我真的只是试图在JS上做一个快速脏的螺栓来解决这个问题,而不是重写或试图弄清楚别人在他们的代码中做了什么。
你能证明你的HTML代码?很明显,你错了还是? –
可能有助于将元素分配给变量,然后调用该数组的索引。正如刚刚问到的那样需要更多的示例。 – Twisty
如果你想获得价值,那么使用这个$('#theprice')。html(); 或使用此代码 var price = document.getElementById(“theprice”)。innerHTML; –