簡體   English   中英

當我有部分名稱時,getelementsbyname(在Ajax html響應中)。

[英]getelementsbyname (in an Ajax html response) when I have a partial name.

我被困在jQuery Universe的角落里,肯定可以使用一些幫助。

簡而言之,我使用jQuery(GET)進行Ajax調用,並獲得一個XHTML頁面作為響應。 在響應中(包括<html><head><body>標記),有一個input元素,我只知道部分名稱。 我需要獲取響應中附帶的此隱藏輸入字段的值。

ps我無法控制html響應的外觀,因此無法重新格式化。 這些文件必須位於包含jQuery.js的文件夾中(今天為最新版本)

到目前為止,這是我想出的。

Page1.html(進行Ajax調用並獲得page2.html作為響應)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <title>runthis</title>

        <script type="text/javascript" language="javascript" src="jQuery.js"></script>

        <script tyle="text/javascript">
        $(document).ready(function(){
                $('input').click(function(){
                        $.ajax({
                                type : "GET",
                                url : 'page2.html',
                                dataType : "html",
                                success: function(data) {
                                    alert($(data).filter('input[name*="test"]').value);
                                },
                                error : function() {
                                        alert("Sorry, The requested property could not be found.");
                                }
                        });
                });
        });
        </script

</head>
<body>
        <input type="button" value="load" />
</body>
</html>

Page2.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
        <title>TiTlE</title>

</head>
<body>
        <input type="hidden" name="1-test" value="123" />
        <input type="hidden" name="some-other-name" value="456" />
        <input type="hidden" name="yet-another-name="789" />
</body>
</html>

因此,在這些示例中,我需要獲取“ 123”作為答案。

如果有人能指出我的錯誤並幫助我完成這項工作,我將不勝感激。 我已經花了幾個小時上網,所有我的Google搜索結果都標記為可見:),但仍然無法正常工作。

filter()返回一個jQuery對象,而不是DOM元素,因此您必須使用val()方法而不是value屬性:

alert($(data).filter('input[name*="test"]').val());

我剛剛復制了您的設置,發現需要解決兩個問題才能使其正常工作。

兩者都在這條線上:

alert($(data).filter('input[name*="test"]').value);

首先,它應該以.val()結尾

其次,您要求一個子集的值。 選擇第一個匹配項並返回該值:

alert($(data).first('input[name*="test"]').val())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM