javascript - jQuery:如果选择元素存在则做一些事情

标签 javascript ajax jquery jquery-selectors

嘿,我环顾了 Stack Overflow 并尝试了一些其他人的尝试,但我就是无法让它发挥作用。

我有一个这样的选择元素:

<select id="slct_firstCat" name="slct_firstCat" size="15">
</select>

这只会在特定的 AJAX 请求完成后显示,因此此选择元素不会与原始页面的 DOM 一起加载,而是在主页面加载后作为单独的 AJAX 请求加载。

我基本上想做这个...

if (/* select element exists */) {
  // Then change the colour of a div to green
} else {
  // Change the colour to red
}

但请记住,这必须在页面载入之后才能生效。如果需要,我可以单击选择来运行 JS 函数。

我试过下面这段代码,但无法让它工作:

if ($(".element1").length > 0 || $(".element2").length > 0 {
  // code
}

所以基本上,如果选择元素存在,则将选项卡颜色更改为绿色,否则将其更改为红色。

最佳答案

您必须将代码放入 jQuery.ajax() 的成功回调中。 > 0 部分在 $('.element1').length > 0 中不需要,因为与 Ruby 不同,0"" 也是 falsy在 JavaScript 中。

jQuery.ajax({
    url: 'example.php',
    success: function () {    
        if ($('#slct_firstCat').length) {
            $('#myDiv').css('color', 'green');
        } else {
            $('#myDiv').css('color', 'red');
        }
});

关于javascript - jQuery:如果选择元素存在则做一些事情,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5850568/

相关文章:

javascript - 如何使用 ajax 发布 json 对象?

javascript - Safari 浏览器 chop POST 参数

javascript - 如何从异步调用返回响应?

javascript - 使用 post 方法提交表单后,为什么在 php 中表单数据附加到 url?

javascript - C# 中 ajax 函数不返回数据

javascript - 消除 "X-Powered-By" header 是否会自动从 HTTP 响应中消除 "Server" header

javascript - JS : How do I strip unwanted code from the end of a string?

jquery - 如何对 jquery marginleft 进行限制

javascript - 在输入掩码中的 15 个字符后插入 X

javascript - 用JS获取禁用按钮的状态