检查变量是否已初始化的哪种方法更好/更正?(假设变量可以包含任何内容(字符串,整数,对象,函数等))
if (elem) { // or !elem
Run Code Online (Sandbox Code Playgroud)
要么
if (typeof(elem) !== 'undefined') {
Run Code Online (Sandbox Code Playgroud)
要么
if (elem != null) {
Run Code Online (Sandbox Code Playgroud) 如果元素是由.append()方法创建的,如何检查元素是否存在?
$('elemId').length不适合我.
在Mootools,我只是跑if ($('target')) { ... }.if ($('#target')) { ... }在jQuery中是否以相同的方式工作?
可能重复:
jQuery是否存在"exists"函数
是的,我知道这已被问到很多.但是,它让我困惑,因为谷歌搜索结果显示不同的方法(如下所列)
$(document).ready(function() {
if ($('#DivID').length){
alert('Found with Length');
}
if ($('#DivID').length > 0 ) {
alert('Found with Length bigger then Zero');
}
if ($('#DivID') != null ) {
alert('Found with Not Null');
}
});
Run Code Online (Sandbox Code Playgroud)
3中哪一个是检查div是否存在的正确方法?
编辑:看到人们不想从三种不同的方法中学习什么是更好的方法,这是一个很小的问题.这个问题实际上并不是"如何检查div是否存在",而是关于哪种方法更好,如果有人可以解释,为什么它更好?
我有一个函数<div>在点击时附加一个元素.该函数获取被点击元素的文本并将其分配给一个名为的变量name.然后将该变量用作<div> id附加元素的变量.
我需要看是否<div> id与name之前我追加的元素已经存在,但我不知道怎么找这个.
这是我的代码:
$("li.friend").live('click', function() {
name = $(this).text();
// if-statement checking for existence of <div> should go here
// If <div> does not exist, then append element
$("div#chatbar").append("<div class='labels'><div id='" + name + "' style='display:none;'></div>" + name + "</div>");
// Else
alert('this record already exists');
});
Run Code Online (Sandbox Code Playgroud)
这看起来非常简单,但我收到错误" 搜索类名时文件意外结束".我不知道这意味着什么.
if (document.getElementById(name)) {
$("div#" + name).css({bottom: '30px'});
} else {
$("div#page-content div#chatbar").append("<div class='labels'>" + name + "</div><div id='" …Run Code Online (Sandbox Code Playgroud) 我有以下示例:
<input type="text" class="input1" value="bla"/>
Run Code Online (Sandbox Code Playgroud)
有没有办法检查这个元素是否存在并且在一个语句中有值?或者,至少,任何更短的东西
if($('.input1').length > 0 && $('input1').val() != '')
Run Code Online (Sandbox Code Playgroud)
这里只有一英里长的条件让你感到沮丧.
我目前这样做是为了检查两个元素之一是否存在:
if ($(".element1").length > 0 || $(".element2").length > 0) {
//do stuff...
}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来重写相同的?我的意思是,是.length一样的.length > 0吗?
我知道你可以测试width()或者height()如果元素的display属性设置为none会怎样?还有什么其他值可以检查以确保元素存在?
我有以下代码:
<script type="text/javascript">
$(function () {
$('#js-news').ticker({
speed: 0.10,
htmlFeed: false,
fadeInSpeed: 600,
titleText: 'DASHBOARD ALERTS',
direction: 'ltr',
displayType: 'reveal',
controls: false
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我想改变它,只有当#js-news存在时它才会触发.在较旧的IE V10浏览器中,我收到错误:"DOM中不存在元素",相关页面没有js-news元素.较新的浏览器似乎应对,但不是IE7,8,9.
关于代码更改的思考表示赞赏.
谢谢.
我想问一下jQuery中是否有更好的方法来选择多个文本输入然后检查它们中是否有值.这是我的代码:
if ($("#reference").val() != "" || $("#pin").val() != "" || $("#fName").val() != "" || $("#mName").val() != "" || $("#datepicker").val() != "") { /*logic goes here */ }
Run Code Online (Sandbox Code Playgroud)