0

我正在编写一个 Greasemonkey 脚本,我需要能够从隐藏的表单元素中获取值并将其设置为变量。

隐藏的表单值如下所示:

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

我没有 ID、类或任何我能看到的将“值”设置为变量的方式。这需要动态工作,我目前无法为此值建立类或 ID。

是否有 Javascript(或 jQuery)方法来设置它?

换句话说:

查找名称为“ASIN”的“输入”并将 .val() 设置为变量?

4

8 回答 8

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.
于 2013-04-12T15:40:13.197 回答
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 中得到很好的支持,但它对浏览器的支持有限。在 IE 和 Opera 中。

于 2013-04-12T15:40:22.950 回答
1

您可以使用 jQuery属性等于选择器

$('input[name="ASIN"]').val(foo);
于 2013-04-12T15:40:39.517 回答
0

像这样:

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

变量:

var hiddenAsin = $('input[name="ASIN"]').val();
于 2013-04-12T15:40:42.920 回答
0

您可以使用任何属性过滤您的选择。

$('input[name=ASIN]').val("New Value")
于 2013-04-12T15:40:47.687 回答
0

您可以使用以隐藏类型输入为目标的选择器。它应该是这样的:

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

或更简单:

$(':hidden');
于 2013-04-12T15:41:38.897 回答
0

对于纯 JavaScript:

试试document.getElementsByName('name')
请注意,cmptrgeekken 指出这对浏览器的支持有限(尽管这不会是 FF 中的油脂猴的问题)。

作为替代方案,如果该隐藏元素具有固定位置,您还可以通过您从中获得的可预测集合中的索引号访问它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.

示例小提琴在这里

祝你好运!

于 2013-04-12T15:42:59.900 回答
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 或分配给该特定表单的类的情况下获得该特定隐藏表单。

于 2013-04-12T15:47:17.863 回答