我能够获得SharePoint文本框的.html()
,它在DOM中只显示为<div>
。当文本框为空时,<div>
的InnerHTML只显示为<p></p>
。
因为这个特定的文本框并不总是出现(我根据表单上前一个复选框的选定值来控制它的外观),所以我无法使它成为必需,所以我通过检查它是否是动态来动态填写或不填写。这意味着看看InnerHTML是<p></p>
还是类似<p>asdf<span id="ms-rterangecursor-start" RteNodeId="1"></span><span id="ms-rterangecursor-end"></span></p>
,其中asdf
是输入的文本(SharePoint放入其中的所有gobbly-gook)。
我认为我能做的就是这样检查,explainField
将<div>
表示为jQuery变量,类似于http://makandracards.com/makandra/13445-compare-two-jquery-objects-for-equality所做的那样:
var $divNode = $('div');
var $pNode = $('p');
var $testNode = $divNode.html($pNode);
if (explainField.is($(testNode))) {
// we got <p></p>
return false; // go no further
} else {
return true; // we're ok
}
但这种比较不起作用。如果没有文本,则应该满足该语句并返回false。相反,它返回true并认为我们没有文本。如何找到<p></p>
?
答案 0 :(得分:1)
因此,请尝试以下操作,这比您尝试的更容易。
var $divNode = $('div');
var html = $divNode.html();
if ( $(html).children().length > 0 ) {
alert ("not empty");
} else {
alert ("empty");
}