2017-04-27 138 views
-2

我知道这个问题有大量的答案,所有的答案都是一样的。我想将一个变量传递给选择器。例如将变量传递给选择器

var item = 'size_{{$item->size}}'; 
$("input[name="+item+"]").change(function() { 
    console.log('got it'); 
}); 

比方说

{{$item->size}} == M // So the var item ='size_M' 

这远远代码做的不错。项目变量没有问题。但在选择器而不是获得size_M它获得项目字符串本身。

enter image description here

+0

您可能需要furt她用引号分隔属性值,如下所示:'$(“input [name ='”+ item +“'”)“)。这是因为您的值包含非字母数字(下划线)。 – ne1410s

+0

@ ne1410s我也试过,但结果相同 –

+0

@ ne1410s您可以提供相同的文档吗?导致官方文档从未提及过 –

回答

1

其实我不得不做出这个充满活力可能会有很多像size_M,size_xxl,size_S尺寸等

在这种情况下

所有你需要的是

https://api.jquery.com/attribute-starts-with-selector/

$("input[name^='size_']").change(function() { 
    console.log('got it'); 
}); 
+0

他们不需要引号*本身*;只有在没有字母数字字符的地方。 – ne1410s

+0

https://jsfiddle.net/mLfu79mw/ –

+1

@ RokoC.Buljan你是对的。刚刚检查过它。 #ne1410s没有引号也是字母数字和_正常工作。只有当有特殊字符时,才会失败 –