比较 jQuery 中对象的 InnerHTML
Comparing the InnerHTML of an object in jQuery
我能够获取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>
时返回 false ?
因此,请尝试以下操作,这比您尝试的要容易一些。
var $divNode = $('div');
var html = $divNode.html();
if ( $(html).children().length > 0 ) {
alert ("not empty");
} else {
alert ("empty");
}
演示
相关文章:
- 找到对象中值最高的键,然后将其发布到innerHTML中
- 'innerHTML':对象为空或未定义
- 如何在由 JavaScript 窗口对象打开的窗口中设置某些元素的 innerHTML
- TypeError:undefined不是一个对象(正在评估'msg.innerHTML="Uploa
- Microsoft JScript运行时错误:无法获取属性'的值;innerHTML':对象为null或
- IE8:“;ln.innerHTML要么为null要么不是对象”;
- 使用innerHTML来更改页面中动态创建的对象
- 附加对象到innerHTML,并从innerHTML获得该对象
- 对象标签添加innerHTML总是空的onload
- 为什么我的innerHTML对象没有改变时分配
- Internet Explorer的innerHTML对象不支持此属性或方法
- 从返回的表单对象中读取InnerHTML
- 当对象正在加载时,在innerHTML中显示LOADING
- javascript:如何插入对象到innerHtml
- 如何创建ActiveX's m_hWnd HWND,同时使用InnerHTML生成对象
- 如何将对象传递给innerHTML (JavaScript)中的函数
- Javascript对象.innerHtml没有替换所提供的整个字符串参数
- 通过jQuery选择器从对象中获取innerHTML
- innerHTML在jQuery对象上使用时不能正常工作
- 我如何从innerHtml创建一个jQuery对象