我正在编写一个Greasemonkey脚本,我需要能够从隐藏的表单元素中获取值并将其设置为变量。
隐藏的表单值如下所示:
<input type="hidden" name="ASIN" value="B009MO89Y4" />
我没有ID,类或任何我可以看到的将“值”设置为变量的方法。这需要动态工作,我目前无法为此值建立类或ID。
是否有Javascript(或jQuery)方法来设置它?
换句话说:
找到名为“ASIN”的“input”并将.val()设置为变量?
答案 0 :(得分: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 :(得分: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。
* 请注意,虽然Firefox,Chrome和Safari都支持document.getElementsByName
,但IE和Opera中的limited browser support.已经支持。
答案 2 :(得分:1)
您可以使用jQuery attribute equals selector
$('input[name="ASIN"]').val(foo);
答案 3 :(得分:0)
像这样:
$('input[name="ASIN"]').val();
VAR:
var hiddenAsin = $('input[name="ASIN"]').val();
答案 4 :(得分:0)
您可以使用任何属性过滤您的选择。
$('input[name=ASIN]').val("New Value")
答案 5 :(得分:0)
您可以使用针对隐藏类型输入的选择器。看起来应该是这样的:
$('input[type=hidden]');
或更简单:
$(':hidden');
答案 6 :(得分:0)
纯粹的javascript:
尝试document.getElementsByName('name')
。
请注意,cmptrgeekken指出它有limited browser-support(虽然这不会是FF中的greasemonkey的问题)。
作为替代方案,如果该隐藏元素具有固定位置,您还可以通过索引编号在knownParent.getElementsByTagName('tag')[#]
得到的可预测集合中访问它(因此表单中第一个隐藏的输入标签将为0 )。
另一个变体是获取(再次)knownParent.getElementsByTagName('tag')
并循环遍历该集合,以查看哪个元素具有您寻找的“名称”属性集。
只需:
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。
祝你好运!答案 7 :(得分: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,也没有分配给那个特定形式的类。