【问题标题】:Word having single quotes search from xml file using jquery issue使用jquery问题从xml文件中搜索单引号的单词
【发布时间】:2011-08-09 04:36:20
【问题描述】:

您好,我需要使用 jquery 解析 XML 文件。我创建了读取和显示功能。但是当一个单引号的单词不起作用时。

我的 XML 是这样的

<container>
<data name="Google" definition="A search engine"/>
<data name=" Mozilla's " definition="A web browser"/>
</ container>

使用我的 jquery 代码,我可以阅读 Google 的定义。但是由于单引号,我无法阅读 Mozilla 的定义。这是我的 jquery 代码。

var displayDefinition = 函数(obj){ $.get("definitions.xml", 函数(数据){ xml_data1.find("data[name^='"+obj.innerHTML+"']").each(function(k, v){ right='

'+ $(this).attr("定义") + '

'; } } $(".result").append(right); }

任何人都知道解决方案,请帮助我。 谢谢

【问题讨论】:

    标签: html xml jquery-ui jquery


    【解决方案1】:

    jQuery 可以很好地处理单引号。不过,您的函数结构看起来真的很疯狂。假设您要创建一个可以通过传递名称来显示定义的函数,我对其进行了很大的更改:http://jsfiddle.net/rkw79/VQxZ2/

    function display(id) {
        $('container').find('data[name="' +id.trim()+ '"]').each(function() {
            var right = $(this).attr("definition");
            $(".result").html(right);
        });
    }
    

    注意,您必须确保您的“名称”属性不以空格开头或结尾;并修剪用户传入的字符串。

    【讨论】:

    • 干草它不工作。你能告诉我为什么你给了 id.trim()。从函数调用我传递'this'对象。所以我需要使用 this.innerHTML 来获取 li 标签的值。
    • 修剪只是为了以防用户输入“google”,而不是“google”。贴出用于调用'displayDefinition'的代码
    • '+$(this).attr("name")+'
    • 这是函数调用。谷歌名称没有任何问题。如果名称是谷歌这样的问题。我需要搜索 name='Google's'.. 在这种情况下它不起作用。有什么解决办法吗?
  • 使用我发布的函数而不是displayDefinition。而不是 onclick='displayDefinition(this);',使用 onclick='display(this.innerHTML);'。您的其余代码可以保持不变
  • 抱歉,我需要更改 li 的样式,为此我传递了这个对象而不是 this.innerHTML。同样在您的函数中,您没有解析 XML 文件。
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签