我收到一个错误,并认为我知道为什么但不知道如何解决它....例如我的标签/ ID是:
shipping_address [country] <<我认为因为括号[]
我的JS是
$(document).ready(function() {
$("form :input").each(function(index, elem) {
var eId = $(elem).attr("id");
var label = null;
if (eId && (label = $(elem).parents("form").find("label[for="+eId+"]")).length == 1) {
$(elem).attr("placeholder", $(label).html());
$(label).remove();
}
});
});
Run Code Online (Sandbox Code Playgroud)
错误:
js__jquery.js?1419646 ...:1468未捕获错误:语法错误,无法识别的表达式:label [for = billing_address [first_name]]
示例HTML:
<div class="col-sm-6">
<div class="form-group">
<label for="card[first_name]">First Name<span> * </span></label>
<input id="card[first_name]" name="card[first_name]" type="text" class="form-control" value="" validate="true">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
将属性值包装在引号或转义元字符中,因为id值包含一些在jQuery中具有特殊含义的元字符.
.find("label[for='" + eId + "']")
// -^-----------^-
Run Code Online (Sandbox Code Playgroud)
要使用任何元字符(例如!"#$%&'()*+,./:; <=>?@ [] ^`{|}〜)作为名称的文字部分,必须使用两个反斜杠进行转义:\.例如,id ="foo.bar"的元素可以使用选择器$("#foo\.bar").W3C CSS规范包含有关的完整规则集有效的CSS选择器.Mathias Bynens关于标识符的CSS字符转义序列的博客条目也很有用.
仅供参考:使用text()方法而不是html()方法来获取文本内容.
$(elem).attr("placeholder", $(label).text());
// ------^^^^^^---
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |