Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击时,比较所选复选框的id以列出HREF_Javascript_Jquery - Fatal编程技术网

Javascript 单击时,比较所选复选框的id以列出HREF

Javascript 单击时,比较所选复选框的id以列出HREF,javascript,jquery,Javascript,Jquery,有一个复选框列表,可在单击时更改。 这里有一个例子,其余的都是一样的,除了一些id和类,它们像这里的lips一样动态变化 <li class="lifilter"> <input type="checkbox" class="filtercheck" id="lips" checked="checked"> <label for="Lips..." class="lips"> <a href="lips">Lips</a>

有一个复选框列表,可在单击时更改。 这里有一个例子,其余的都是一样的,除了一些id和类,它们像这里的lips一样动态变化

<li class="lifilter">
  <input type="checkbox" class="filtercheck" id="lips" checked="checked">
  <label for="Lips..." class="lips">
    <a href="lips">Lips</a>
  </label>
</li>
我是js的新手,不知道从这里该去哪里。在组合变量时,很可能出现语法错误


帮助一个noob走出plz

从我收集的内容中,您需要检查页面上的复选框并将它们连接在一起。最简单的方法可能是使用。您提到选中复选框会选中类复选框,因此:

但是,URL中项目的顺序将取决于文档中的顺序。例如,如果lips复选框按文档顺序位于face复选框之前,则url将为“/collections/face lips”,但如果相反,则为“/collections/lips face”

如果需要定义顺序,请对map返回的数组进行排序:

如果您有预设顺序,请将该顺序存储在单独的数组中:

var order = [ 'face', 'cheeks', 'lips' ];
var parts = $('.checkchecked').map(function (index, element) {
    return this.id;
}).sort(function (a, b) {
    return order.indexOf(a) - order.indexOf(b);
}); // This will sort by separate "order"

var url = '/collections/' + parts.join('-');

这似乎是一种奇怪的导航方式,但我会这样做:

使用所有选中的复选框和 将这些选择器连接在一起并应用结果 检查你得到了多少结果。一旦你缩小到一个结果,你有足够的信息重定向。 下面有一段正在运行的代码片段。它实际上并不重定向,而是显示重定向位置或可能结果的数量

$.filtercheck.onclick,函数{ //构建包含选择器的jQuery数组 所选变量=$.filtercheck:checked.get.mapfunctionitem{ 返回“[href*=”+item.id+”]; }; //将选择器连接成一个连续字符串 var选择器=selected.join; //运行jQuery选择器 var result=$.collectionURL+选择器; //如果有一个结果,您可以成功导航 如果result.length==1{ var href=result.attrref; $result.valhref; //window.location=href;//取消对重定向的注释 } 否则{ $result.valresult.length+结果; } }; 面对 嘴唇 面颊
也许可以试试:var addurl=this.href;?可能有相当多的类可以应用于url,所以不知道该如何处理这些类。您遇到了什么问题,正好是一个问题。将多个检查ID与HREF列表匹配的整个想法。我可以找到匹配的一个,但如何匹配无限数量的支票?是否有特定的顺序?例如,当同时选中face和lips时,URL必须是/collections/face lips还是/collections/lips face?您认为有什么方法可以使其不依赖于顺序。您可以对map返回的数组进行排序。我会更新我的问题。问题是顺序可能会很混乱。你是说URL中的顺序?听起来很奇怪。您还可以创建所有可能的排列及其规范顺序的散列。例如,{face-lips:face-lips,lips-face:face-lips,face-脸颊:face-脸颊,脸颊脸:face-脸颊,等等..}然后做一个查找…由于某种原因,这个片段在我的网站上不起作用,但显然是有效的。让我深入研究几分钟,它怎么不起作用?你得到的结果太多了,没有结果,还是别的什么?
$(document).ready(function(){
var curdomain = document.domain;
//id's and classes forming code  
  $('.lifilter').click(function(){
          //compare ids to hrefs
  var addurl = // that class attr('href')
  var curdomain = curdomain + addurl;
  window.location = curdomain;
  });
});
var url = '/collections/' + $('.checkchecked').map(function (index, element) {
    return this.id;
}).join('-');
var parts = $('.checkchecked').map(function (index, element) {
    return this.id;
}).sort(); // This will sort them alphabetically

var url = '/collections/' + parts.join('-');
var order = [ 'face', 'cheeks', 'lips' ];
var parts = $('.checkchecked').map(function (index, element) {
    return this.id;
}).sort(function (a, b) {
    return order.indexOf(a) - order.indexOf(b);
}); // This will sort by separate "order"

var url = '/collections/' + parts.join('-');