jQuery 中使用变量的多个动态选择器

发布于 2024-12-12 10:32:58 字数 515 浏览 0 评论 0原文

使用单个动态选择器我没有问题:

var answer_id = <?php echo $answer_id; ?>;

$('#a_flag_' + answer_id).click(function(e) {
        e.preventDefault();

         //Ajax etc...

但是如果我添加几个动态选择器,它们就不起作用(即 Firebug 控制台上没有错误,但单击时也没有任何操作):

var answer_id = <?php echo $answer_id; ?>;

$('#a_flag_' + answer_id,'#a_comments_link_' + answer_id,'#a_best_answer_' + answer_id).click(function(e) {
        e.preventDefault();

         //Ajax etc...

知道我做错了什么吗?

Using a single dynamic selector I have no problems:

var answer_id = <?php echo $answer_id; ?>;

$('#a_flag_' + answer_id).click(function(e) {
        e.preventDefault();

         //Ajax etc...

But if I add several dynamic selectors they do not work (ie, no errors on Firebug console, but also no action when clicked):

var answer_id = <?php echo $answer_id; ?>;

$('#a_flag_' + answer_id,'#a_comments_link_' + answer_id,'#a_best_answer_' + answer_id).click(function(e) {
        e.preventDefault();

         //Ajax etc...

Any ideas what I am doing wrong?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凑诗 2024-12-19 10:32:58

您需要在带引号的常量字符串内使用逗号。

$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id + ',  #a_best_answer_' + answer_id).click(// ///

您最终想要得到的是一个看起来像这样的字符串,

"selector, selector, selector, ..."

因此您需要用逗号连接一堆字符串。

或者,您可以在字符串数组中构建单独的选择器,然后使用逗号分隔符(“.join()”的参数)“.join()”它们。

You need the commas inside the quoted constant strings.

$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id + ',  #a_best_answer_' + answer_id).click(// ///

What you want to end up with is a string that looks like

"selector, selector, selector, ..."

so you need to concatenate a bunch of strings with commas.

Alternatively, you could build up your separate selectors in an array of strings and then ".join()" them with a comma separator (the parameter to ".join()").

终陌 2024-12-19 10:32:58

您应该将逗号放在字符串内部而不是外部,并且您忘记了加号。

$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id +',#a_best_answer_' + answer_id)

You should put the coma inside the string not outside and you have forgotten the plus.

$('#a_flag_' + answer_id + ', #a_comments_link_' + answer_id +',#a_best_answer_' + answer_id)
黑白记忆 2024-12-19 10:32:58

当它开始看起来太复杂时,它很可能就是这样。
FWIW:

var selectors = [
  '#a_flag_' + answer_id,
  '#a_comments_link_' + answer_id
  // etc.
]
$(selectors.join(", ")).click(...)

快乐编码。

When it starts to look too complicated, it likely is.
FWIW:

var selectors = [
  '#a_flag_' + answer_id,
  '#a_comments_link_' + answer_id
  // etc.
]
$(selectors.join(", ")).click(...)

Happy coding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文