【问题标题】:Jquery each and split issueJquery 每个和拆分问题
【发布时间】:2016-03-24 19:27:09
【问题描述】:

我有这个代码

<head>
    <meta charset="utf-8">
    <script src="//code.jquery.com/jquery-2.0.1.js"></script>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/sunny/jquery-ui.css">
    <link rel="stylesheet" href="http://localhost/opencart/preventivo.css">
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    <script>
        var opzione=$("#tutte_le_macro_opzioni").text().split(" ");
        $.each(opzione, function( key, value ) {
            $(document).on("change","."+value,function () {
                //does something//
            });
        });
<div id="tutte_le_macro_opzioni"><?php echo "city,country,name"; ?></div>

现在的问题是,当我使用var opzione=$("#tutte_le_macro_opzioni").text().split(" "); 时,它给了我这个问题:

Sizzle.error = function( msg ) {
    throw new Error( "Syntax error, unrecognized expression: " + msg );
};

如果我将var opzione=$("#tutte_le_macro_opzioni").text().split(" "); 更改为var opzione="city,country,name",则脚本可以完美运行。在 php 结果后拆分似乎有问题。

有人可以帮帮我吗?

更新

这是我填充 div tutte_le_macro_opzioni 的 php 代码

<?php

$con=mysqli_connect("localhost","root","","test");  
$a="";
$query= "SELECT * FROM oc_option_description";
$result=mysqli_query($con,$query);
while($row=mysqli_fetch_array($result)){    

$a.=strtolower($row["name"]).",";   
}
echo $a;
?>

已解决

我用这个替换了php代码

一行中的所有代码...似乎区分大小写:-)

【问题讨论】:

  • 您缺少document.ready 处理程序,这意味着$("#tutte_le_macro_opzioni") 是空的,并且您正在迭代的内容与您的想法完全不同,因此"."+value 不是jQuery 选择器,并且嘶嘶声引发错误。你可以通过console.log(opzione) 自己在 10 秒内弄清楚这一点,看看你有什么。

标签: javascript jquery split each


【解决方案1】:

尝试替换这个:

var opzione=$("#tutte_le_macro_opzioni").text().split(" ");
$.each(opzione, function( key, value ) {
$(document).on("change","."+value,function () {

//does something//
});
});

通过这个:

$(function(){
  var opzione=$("#tutte_le_macro_opzioni").text().split(',');
  $.each(opzione, function( key, value ) {
    $(document).on("change","."+value,function () {

    //does something//
    });
  });
});

由于$("#tutte_le_macro_opzioni").text() 包含与此“城市、国家/地区、名称”相同的字符串,并且它是一个字符串,因此您必须在 ',' 上进行拆分,以获得$.each() 循环的数组。

See this fiddle

【讨论】:

  • 非常感谢,但在我的情况下不起作用..我发布了 php 代码,我得到了 tutte_le_macro_opzioni 的值
  • 很抱歉,它返回这个值“城市,国家,名称”,但我不知道为什么这样它不起作用
  • 很奇怪..我们可以在某个地方看到您的页面吗?你是否包含了 Sizzle js 插件?因为错误是指它。
  • 不...我不知道什么是嘶嘶声...但我只使用 jquery 验证和 tinymce...我删除它们,结果是一样的。我的页面现在在 localhost...:-(
  • 你能复制你所有的代码(包括php),这样我们可以有一个全局视图吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-12-25
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 2015-12-14
  • 2012-11-07
  • 2012-06-23
相关资源
最近更新 更多