我正在尝试选择html变量中包含的所有锚点,如下面的代码:
var deposti_row = "
<a data-country='uk' data-currency='eur' data-matching='country-currency'> AA </a>
<a data-country='uk' data-currency='eur' data-matching='country'> BB </a>
<a data-country='uk' data-currency='eur' data-matching='none'> CC </a>
"
$("a['data-matching']",$(deposit_row)).each( function(){
console.log(this);
});
但我得到错误语法错误,无法识别的表达式:a ['data-matching']。有什么帮助吗?
答案 0 :(得分:2)
你的语法错了。无论如何,你真正想要的是过滤匹配的集合:
$(deposit_row).filter('a[data-matching]').each(...)
关于处理mutliple行,你的字符串语法也是错误的。
deposti_row
与deposit_row
不同。
这使得许多事情变得错误,因此发布的代码很少......
答案 1 :(得分:1)
另一种方式: -
has
创建多行字符串。var deposit_row = "\
<a data-country='uk' data-currency='eur' data-matching='country-currency'> AA </a>\
<a data-country='uk' data-currency='eur' data-matching='country'> BB </a>\
<a data-country='uk' data-currency='eur' data-matching='none'> CC </a>\
";
$(deposit_row).each(function() {
if ($(this).has('[data-matching]'))
console.log(this);
});
。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
var auth = function(req, res, next){
if (!req.isAuthenticated())
res.send(401);
else next();
};
答案 2 :(得分:0)
您需要从属性选择器中删除单引号,然后它应该工作为长锚标记a
具有父元素。
您需要将它们包裹在div
中以将其视为后代
deposit_row = $(deposit_row).wrap("<div></div>").html();
$("a[data-matching]",$(deposit_row)).each( function(){
console.log(this);
});
如果a['data-matching']
是根节点的子节点
$(deposit_row).find("a['data-matching']").each(function(){
});
但是因为a
是这里的根节点
$(deposit_row).children("a['data-matching']").each(function(){
});