我正在调用一个以HTML为参数的jQuery方法。
然后,我想通过input
类检查"LastIdReceived"
控件的HTML。总会只有其中一个。
然后我想找到为此控件设置的值(即:收到的最后一个控件的Id)。
但是,val()
方法正在返回undefined
。我想知道这是因为它是动态内容而不是DOM的一部分。
如果有办法解决这个问题,请分享一下。
这是我的功能:
function AfterLoadingMoreFollowersOpinions(data) {
var htmlObject = $(data);
var object = htmlObject.find('.LastIdReceived');
alert(object.val());
}
编辑: 我的Controller返回一个PartialView作为ActionResult,然后被赋予Ajax调用的OnSuccess方法,如下所示:
OnSuccess = "AfterLoadingMoreFollowersOpinions(data);"
我认为它是正确地从这个调用中传递HTML,因为在JS中为htmlObject和object做一个ALERT返回[object object],这让我相信JS的那些部分正在工作(如果我是正确的我错了。我不知道更好的检查方法。)
PartialView呈现并通过(我假设)到JS函数的HTML如下:
<div>
<div class="PostedOpinionDiv" id="SkipToOpinion_1002">
<p><b>Id:</b> 1002</p>
<p><b>Author:</b> Joe Shmoe - 8</p>
<p><b>Opinion Subject:</b> Follower Opinion Subject - 2</p>
<p><b>Opinion:</b> Follower Opinion Text - 2</p>
</div>
<input type="hidden" class="LastIdReceived" value="1002" />
</div>
正如您所看到的,这是我想从JS函数(1002)获取的输入值。
答案 0 :(得分:1)
您可以使用jquery的parseHTML()方法将HTML文本作为DOM使用,这是您给出的示例中的解决方案:
//Parse HMTL to DOM and find an item value
function AfterLoadingMoreFollowersOpinions(data) {
var htmlObject = $.parseHTML(data);
var object = $(htmlObject).find(".LastIdReceived");
//alert item value
alert(object.val());
}
//Any HTML text
var htmlString = "<div>";
htmlString += " <div class=\"PostedOpinionDiv\" id=\"SkipToOpinion_1002\">";
htmlString += " <p><b>Id:</b> 1002</p>";
htmlString += " <p><b>Author:</b> Joe Shmoe - 8</p>";
htmlString += " <p><b>Opinion Subject:</b> Follower Opinion Subject - 2</p>";
htmlString += " <p><b>Opinion:</b> Follower Opinion Text - 2</p>";
htmlString += " </div>";
htmlString += " <input type=\"hidden\" class=\"LastIdReceived\" value=\"1002\" />";
htmlString += "</div>";
//Call function and send HTML text
AfterLoadingMoreFollowersOpinions(htmlString);