2013-04-12 35 views
0

我正在寫一個Greasemonkey腳本,我需要能夠從隱藏的表單元素中獲取值並將其設置爲變量。識別沒有ID或類的隱藏表格值

隱藏的表單值如下:

<input type="hidden" name="ASIN" value="B009MO89Y4" /> 

我沒有ID,類或任何方式,我可以看到設置「值」的變量。這需要動態工作,我目前沒有辦法建立一個類或ID到這個值。

是否有Javascript(或jQuery)方法來設置它?

換句話說:

查找 「輸入」 與名 「ASIN」,並設置.VAL()給一個變量?

回答

1

此選擇和分配:

$("input[name='ASIN']").val(); <---- returns value of that input 

var inputVal = $("input[name='ASIN']").val(); <-- Assigns it 

var temp = "Stuff"; 
$("input[name='ASIN']").val(temp); <----Assigns the value of the temp var. 
+1

非常感謝。我一直在嘗試一些簡單的工作,但工作不正常。有些頁面的ID爲#ASIN,值已經設置,所以我只是將其設置爲#ASIN。沒想到會是那麼簡單:) 又一次,非常感謝! –

1

您可以通過選擇它。名jQuery的像這樣:

var bar = "Example"; // Example text, to be used in val(). 
var x = $('input[name="ASIN"]').val(bar); 
// Sets the variable x to be the value bar for the input with the name ASIN. 

這裏有一個工作的jQuery jsFiddle


在純的Javascript *

var bar = "Example"; 
document.getElementsByName("ASIN")[0].value = bar; 

這裏有一個可用的JavaScript jsFiddle


* 請注意,儘管document.getElementsByName是在Firefox,Chrome和Safari支持的很好,它有limited browser support.在IE和Opera。

+0

請注意,'document.getElementsByName'瀏覽器支持有限:[W3C DOM兼容性 - 核心](http://www.quirksmode.org/dom/w3c_core.html#t125) – cmptrgeekken

+0

@cmptrgeekken我已經將它納入答案, 謝謝。只是認爲這將是一個純粹的JavaScript方式,而不僅僅是jQuery的答案是很好的! – lifetimes

0

像這樣:

$('input[name="ASIN"]').val(); 

VAR:

var hiddenAsin = $('input[name="ASIN"]').val(); 
0

你可以用任何屬性篩選您的選擇。

$('input[name=ASIN]').val("New Value") 
0

您可以使用選擇器來針對隱藏類型的輸入。它應該看起來像:

$('input[type=hidden]'); 

或簡單:

$(':hidden'); 
0

對於純javascript:

嘗試document.getElementsByName('name')
請注意,cmptrgeekken指出,這有limited browser-support(雖然這不會在FF中的greasemonkey問題)。作爲替代方案,如果該隱藏元素具有固定位置,則您還可以通過索引號訪問它,該索引號位於您從knownParent.getElementsByTagName('tag')[#]獲得的可預測集合中(因此表單中的第一個隱藏inputtag將爲數字0)。

另一個變化是(再次)獲取knownParent.getElementsByTagName('tag')並遍歷該集合以查看哪個元素具有您要查找的「name」屬性集。 簡單地做:

var target=knownParent.getElementsByTagName('input'), L=target.length; 
      while(L--){ if(target[L].name==='name'){target=target[L]; break;} } 
alert(target.value); //target is now the element you seek. 

例小提琴here

祝你好運!

0

使用此方法

var inputs = document.getElementsByTagName('input'); 
for(var i = 0...) 
{ 
    //go through each input and look for the name "ANSI" and the type is hidden. 

    //and do your changes. 
} 

這是Javascript記住。

用這個,你應該可以得到沒有ID或特定窗體的特定隱藏表單。

+0

'for(int i = 0 ...)'?據我所知,Javascript中沒有int數據類型。你可能是指'for(var i = 0; ...)' – GitaarLAB

+0

啊,是的,我的糟糕,它的habbit哈哈。但是,你抓住了我的漂移。這應該有助於他解決他的問題。 –