jQuery Ajax 如何将responseText 作为变量传递给indexOf?

发布于 2024-09-10 16:41:00 字数 718 浏览 9 评论 0原文

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

在附加之前,我想查看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();

})

提前感谢您的任何建议。

I am trying to append a p element from the responseText of an Ajax request.

Before appending, I would like to see if the responseText already exists in the parent div element text, and not add it if that is the case. The problem is I cannot get indexOf(responseText) to work using the variable responseText. My code works when I pass a string literal to indexOf.

Here is my code:

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();

})

Thanks in advance for any suggestions.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

予囚 2024-09-17 16:41:00

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

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

Maybe because you're looking for html within plain text. Try using html instead of text:

var text = jQuery('#div').html();
if (text.indexOf(responseText) == -1) {
   ...
通知家属抬走 2024-09-17 16:41:00

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

var resp = $(responseText);
var div = $("#div");

if(div.text().indexOf(resp.text()) == -1)
  resp.appendTo(div)

Wrap the response with jQuery and try the comparison with the text() representation of it...

var resp = $(responseText);
var div = $("#div");

if(div.text().indexOf(resp.text()) == -1)
  resp.appendTo(div)
苏别ゝ 2024-09-17 16:41:00

上面的解决方案都不适合我(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>

No solutions above were working for me (jQuery 1.11.2).

But I found finally my solution: $(my_variable).selector

It works without problem for me :

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>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文