jQuery获取div内容

3
我有以下div结构,但是这个结构会变化。
<div class="rt-container">
    <div class="rt-block">
        <div id="rt-mainbody">
            <div id="responseMessage">Welcome bogyoro. Now you are loged in.</div>
            <div id="responseErrorMessage">5</div>
        </div>
    </div>
</div>

我正在使用以下代码来获取responseMessage内容:
var div = logReg.query("<div>").html(msg);
var message = div.children('#responseMessage').html();
var isValid = div.children('#responseErrorMessage').html();
if(isValid == null)
{
    message = div.find('#responseMessage').html();
    isValid = div.find('#responseErrorMessage').html();
}

但是isValid是空的。
更新:
var logReg = {};
logReg.query = jQuery.noConflict(true);

1
什么是 logReg?什么是 query - Felix Kling
2
一个快速的建议:你不需要使用 div.find,只需使用 $('#responseMessage').html()(你正在调用 ID,它是唯一的)。 - jackJoe
你在检查 errorMessage 是否存在?还是它是否有内容? - jackJoe
好的,但是这个消息是一个 AJAX 响应,我在服务器端没有访问权限。 - Mokus
即便如此,ID就是ID,那个方法必须得起作用。 - jackJoe
3个回答

4

如果您想获取具有id的元素的html,则可以简单地使用id选择器。

$("#responseMessage").html(); 

好的,但是这个消息是一个 AJAX 响应,我在服务器端没有访问权限。 - Mokus

4
var isValid = div.children('#responseErrorMessage').html();

if (isValid == null) { }

如果元素存在,它将始终返回false。

如果元素为空,则返回一个空字符串。请尝试使用if (isValid == "") { }


我刚刚发了同样的内容 :) 我也认为 OP 代码中的逻辑有些问题,isValid 变量将包含不同的对象,这很奇怪。 - jackJoe
他的逻辑毫无意义。他声明了一个变量来保存错误文本。然后他尝试判断它是否为空,如果不是,再次声明它。奇怪。 - cllpse

0
为什么不直接这样做呢?
var message = logReg.query('#responseMessage').html();  
var isValid = logReg.query('#responseErrorMessage').html();

你代码的第一行有问题。它会返回一个包含所有 div 标签的数组。因此,当你执行 div.children('...') 时,你是在对整个 div 列表执行操作。
既然你已经有了特定元素的锚点,直接查找它们即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接