所有,我是jquery的新手,我发现有时候我需要编写一些代码来验证元素值。如下。
var selectedLayOutIdx=$("#spanSelectedLayout").html();
if (selectedLayOutIdx!=undefined && selectedLayOutIdx!="") {
alert("The value is null, please check it.");
return;
} else {
//keep going.
}
我发现这段代码看起来很冗长,我相信必须有更好的方法让代码在jquery中更有趣。到目前为止,我还没有找到它。
请帮帮我。感谢。
答案 0 :(得分:3)
您可以使用jQuery.trim():
var selectedLayOutIdx=$.trim( $("#spanSelectedLayout").html() );
if( selectedLayOutIdx == "" ) {
//its empty
}
OR
if( !$.trim($("#spanSelectedLayout").html()) ) {
//its empty
}
答案 1 :(得分:1)
您可以使用以下代码检查范围的值。
var selectedLayOutIdx=$("#spanSelectedLayout").text();
if(selectedLayOutIdx == ""){
alert("Value is null")
}else{
// Your code
}
更新(更短版本):
if($("#spanSelectedLayout").text()){
// code if text present
}
答案 2 :(得分:1)
var result=$("#spanSelectedLayout").html().replace(/^\s+|\s+$/g, '')
if( result== "" ){
.
.
.
对所有浏览器都有效。
.trim()无法在某些版本的IE中使用。
答案 3 :(得分:1)
首先,您需要精确定义要求。
在你的代码中你测试undefined
jQuerys html的实现永远不会返回undefined
所以没有理由对此进行测试。但是,可能有或没有理由对null
<div id="spanSelectedLayout">content</div>
var txt = $("#spanSelectedLayout").html() //txt will be "content"
<div id="spanSelectedLayout"> </div>
var txt = $("#spanSelectedLayout").html() //txt will be return " "
<div id="spanSelectedLayout"> </div>
var txt = $.trim($("#spanSelectedLayout").html()) //txt will be return ""
<div id="spanSelectedLayout"> </div>
var txt = $("#spnSelectedLayout").html() //txt will be null
后者很可能是由于错误拼写选择器而发生的,即一个bug,所以你可能应该区别于“”或全白色字符串。但是“”并且所有的空格HTML在语义上是相同的,所以你应该对待那些可能导致
的值。var selectedLayOutIdx = $ .trim($(“#spanSelectedLayout”)。html()); if(selectedLayOutIdx ==“”){ //是空的 }
但是$.trim(null)
返回""
并且不为null,因此仍然会隐藏错误,因此您必须在更简洁的代码或类似的代码之间做出决定
var selectedLayOutIdx=$("#spanSelectedLayout").html();
if(selectedLayOutIdx == null) { throw "Invalid selector" }
if( && $.trim(selectedLayOutIdx) == "" ) {
//is empty
}