<button id="'+item['id']+'" class="btnDeactivateKeyInChildPremiumCustomer waves-effect waves-light">ok</button>
我用上面的代码在jquery的每个函数中生成按钮。按钮是动态创建的,当我点击按钮时,它应该显示按钮的进度。我用的是Ladda Button Loader。
btnDeactivateKeyInChildPremiumCustomerClick : function(event){
var id = event.currentTarget.id;
var btnProgress = Ladda.create(document.querySelector('#'+id));
// btnProgress.start(); or btnProgress.stop();
}
然后我把按钮传递给事件处理器,事件处理器捕获事件处理上述函数。在该函数中,它将创建一个btnProgress对象。之后,我可以调用start()或停止()函数。我已经成功地在只有一个按钮的情况下工作了,没有在每个按钮内动态创建按钮。但是在每个情况下,它在执行var btnProgress = Ladda时显示了一些错误。创建一个文档;
错误
Uncaught SyntaxError: Failed to execute 'querySelector' on 'Document': '#22' is not a valid selector.
2条答案
按热度按时间vc9ivgsu1#
您可以在HTML5文档中使用以数字开头的ID:
该值在元素的主目录子树中的所有ID中必须是唯一的,并且必须至少包含一个字符。该值不得包含任何空格字符。
对于ID可以采取什么形式没有其他限制;特别地,ID可以仅由数字组成、以数字开始、以下划线开始、仅由标点符号组成等。
但是
querySelector
方法使用CSS3选择器来查询DOM,而CSS3不支持以数字开头的ID选择器:在CSS中,标识符(包括选择器中的元素名称、类和ID)只能包含字符[a-zA-Z 0 -9]和ISO 10646字符U+00 A0及更高字符,以及连字符(-)和下划线(_);它们不能以一个数字、两个连字符或连字符后跟一个数字开头。
为ID属性使用类似
b22
的值,您的代码将正常工作。由于要按ID选择元素,因此也可以使用
.getElementById
方法:p1iqtdky2#
虽然这在HTML中有效,但不能在 CSS selectors 中使用以整数开头的ID。
如前所述,您可以使用
getElementById
来代替,但是您仍然可以使用querySelector
来实现相同的效果: