【问题标题】:jQuery Ajax How Do I Pass responseText as variable to indexOf?jQuery Ajax 如何将 responseText 作为变量传递给 indexOf?
【发布时间】:2010-07-16 19:30:02
【问题描述】:

我正在尝试从 Ajax 请求的 responseText 中附加一个 p 元素。

在添加之前,我想看看 responseText 是否已经存在于父 div 元素文本中,如果是这样就不要添加它。问题是我无法使用变量 responseText 让 indexOf(responseText) 工作。当我将字符串文字传递给 indexOf 时,我的代码有效。

这是我的代码:

jQuery('#addButton').live('click', function () {

    new Ajax('<url>', {
        method: 'get',
        dataType: 'html',
        onSuccess: function (responseText) {
            var text = jQuery('#div').text();

            if (text.indexOf(responseText) == -1) {
                //always true using responseText; 
                //string literal works though
                jQuery('#div').append(responseText);
            }
        }
    }).request();

})

提前感谢您的任何建议。

【问题讨论】:

  • responseText#div 的文字是什么样的?

标签: jquery indexof responsetext


【解决方案1】:

可能是因为您正在寻找纯文本中的 html。尝试使用html 而不是text

var text = jQuery('#div').html();
if (text.indexOf(responseText) == -1) {
   ...

【讨论】:

    【解决方案2】:

    用 jQuery 包装响应并尝试与它的 text() 表示进行比较...

    var resp = $(responseText);
    var div = $("#div");
    
    if(div.text().indexOf(resp.text()) == -1)
      resp.appendTo(div)
    

    【讨论】:

      【解决方案3】:

      以上没有解决方案对我有用(jQuery 1.11.2)。

      但我终于找到了我的解决方案:$(my_variable).selector

      它对我来说没有问题:

      var responseText = "word";
      var resp = $(responseText).selector;
      
      
      
      $("div").each(function() {
        if ($(this).text().indexOf(resp) >= 0) {
          alert("I've found your query: " + resp + " at " + $(this).offset().left + "/" + $(this).offset().top);
        }
      });
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
      <div>THis is a test</div>
      <div>I'm searching for this word</div>
      <div>nothing here</div>

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-08-24
        • 1970-01-01
        • 2018-12-15
        • 2011-06-09
        • 2015-04-28
        • 2013-09-05
        • 1970-01-01
        • 2012-02-21
        相关资源
        最近更新 更多