Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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函数_Javascript_Jquery_Arrays_Function_Load - Fatal编程技术网

如何将其转换为影响所有值的全局javascript函数

如何将其转换为影响所有值的全局javascript函数,javascript,jquery,arrays,function,load,Javascript,Jquery,Arrays,Function,Load,这段代码通过jQuery加载一个基于复选框onclick事件的页面 function product_analysis(address, box) { if (box.checked) { $('#product_' + box.alt).load(address); } else { $('#product_' + box.alt).load('http://www.divethegap.com/update/blank2.html');

这段代码通过jQuery加载一个基于复选框onclick事件的页面

function product_analysis(address, box) {
    if (box.checked) {
        $('#product_' + box.alt).load(address);
    } else {
        $('#product_' + box.alt).load('http://www.divethegap.com/update/blank2.html');
    }
    document.getElementById('product_quantity_PRI_' + box.alt).value = box.value;
};
onclick事件如下所示http://www.samedomain.blahblahblah,这一点)

我需要的是,对于页面加载中已经勾选的所有复选框,都应用此函数。我对javaScript相当有信心,但当涉及到对象和数组时,我会迷失方向


非常感谢,

这是必需的脚本

$().ready(function(){
    var box, address;
    $(":checkbox").each(function(){
           box = this;
           if (box.checked) {
               address = ""; //you can set address either in hidden fields or in metadata
               $('#product_' + box.alt).load(address);
           }
           else {
                $('#product_' + box.alt).load('http://www.divethegap.com/update/blank2.html');
           }           
           document.getElementById('product_quantity_PRI_' + box.alt).value = box.value;
    });
});

如果选中该复选框时有一个名为“selected”的类,则可以执行如下操作

$('.selected').function(element){product_analysis(address, element)};

您需要检查检查了多少次,然后调用代码

var checkLength = checkObj.length;

for(var i = 0; i < checkLength ; i++) {
 if(radioObj[i].checked) {
 }
// here your code base on check box status
}
var checkLength=checkObj.length;
对于(变量i=0;i
您可以使用此代码查找当前选中的所有复选框:

$(':checkbox:checked')
如果您想对所有这些应用程序执行某些操作,可以使用如下功能:

$(':checkbox:checked').each(function() {

  // alerts the checkbox for example
  // "this" referes to the checkbox, one after the other
  alert(this); 

})
<input type="checkbox" data-address="someaddress" data-foo="something else" data-bar="more data!" />
或者执行您要求的操作(“对于页面加载中已勾选的所有复选框,将此功能应用于所有复选框”):

编辑:解决第二个问题(不是原始问题的一部分,而是下面的评论):

我假设您的标记中有这样的字段。当然,使用一些有意义的ID,而不是我愚蠢的示例

<input type="checkbox" id="foo" />
<input type="checkbox" id="bar" />
<input type="checkbox" id="baz" />
这将使用与复选框ID对应的地址调用product_analysis

编辑(再次):

实际上,有一种方法可以将元数据直接添加到我不知道的html标记中。您可以将前缀为“data-”的属性添加到标记中,如下所示:

$(':checkbox:checked').each(function() {

  // alerts the checkbox for example
  // "this" referes to the checkbox, one after the other
  alert(this); 

})
<input type="checkbox" data-address="someaddress" data-foo="something else" data-bar="more data!" />


你可以多读一点.< /p> 谢谢你的帮助。我知道了。Jakob可能会认为这是一个黑客攻击,但它是一个数据驱动的网站,基于我有限的技术知识,我们不能每次修改一个新产品时修改一个JS文件。

function product_analysis_global() {

    $(':checkbox:checked').each(function() {
    $('#product_' + this.alt).load(this.title);
});
}

function product_analysis(box) {
    if (box.checked) {

    $('#product_' + box.alt).load(box.title);

    }
    else {

    $('#product_' + box.alt).load('http://www.divethegap.com/update/blank2.html');
    }
    document.getElementById('product_quantity_PRI_' + box.alt).value = box.value;


};

你遗漏了描述他将如何获得checkObj的部分。此外,没有必要计算长度、手动编写for循环等。这不是一个很好的解决方案,即使它可以完成任务。他要求“页面加载时已勾选的所有复选框都应用此函数“。也许他不是这个意思,但无论如何,这段代码调用所有复选框的函数,而不仅仅是选中的。都很好,是的,我希望函数product_analysis应用于所有选中的。但是,如何从原始onclick事件中检索“someAddress”进行产品分析。因此,目前每个复选框上都有一个onclick“product_analysis”(“…”,this)。目前,它是存储地址的唯一位置。无法将其分配给框值或alt标记,因为它们已在函数中绑定。因此,是否有一种方法可以有效地启动已分配给每个复选框的onclick事件,方法是使用.each on all checkedbox。我只需使用所有复选框的ID即可然后将所有相关数据放在一个js文件中,(将ID映射到他们正在处理的任何数据)但在我看来,这实际上是一个独立的问题。这与如何在所有复选框上运行函数并不完全相同。我很乐意提供更多示例,但这有点错位。好的,谢谢Jakob,我会尝试一下,如果都失败了,你会看到一个另一个问题是,我将把这个评论作为一种恭维;)无论如何,我理解您可能无法在任何时候修改任何文件。但是,我假设您根据数据库中的产品生成带有所有复选框的html代码?您应该生成“地址”“我的示例中的变量也是这样。将其与所有其他逻辑一起硬编码到JS文件中是疯狂的:)因此,要么放入自己的文件,让应用程序生成该文件。如果您希望只生成html,那么您可以将其作为内联JavaScript编写。另一方面,显然您比我更了解该领域,并且只要您的解决方案有效,很容易添加新产品,并且不会引起任何问题,那么一切都很好!很高兴能帮上忙:)顺便说一句,不要错过我最后的发现。我把它附加到我原来的帖子里了!