如何使用javascript“点击”没有ID或名称的按钮?

时间:2013-12-03 06:47:25

标签: javascript jquery html

这是相关代码

<div class="call-to-action call-to-action-g1">

<input type="submit" value="Siguiente paso" class="submit">

我无法修改此HTML代码。所以我只有这个。 该页面还有许多提交按钮,因此getelementbyqueryall将无法正常工作

9 个答案:

答案 0 :(得分:3)

你可以这样做:

$("div.call-to-action.call-to-action-g1 > input[type='submit'].submit[value='Siguiente paso']").on('click',function (){...});

(这是我根据你的代码找到的具体内容)

答案 1 :(得分:2)

Jquery解决方案

$('input[value="Siguiente paso"]').trigger('click');

Javascript解决方案

document.querySelectorAll('input[value="Siguiente paso"]').click();

适用于较旧的浏览器

function getInputsByValue(value)
{
    var allInputs = document.getElementsByTagName("input");
    var results = [];
    for(var x=0;x<allInputs.length;x++)
        if(allInputs[x].value == value)
            results.push(allInputs[x]);
    return results;
}

答案 2 :(得分:1)

我知道的唯一方法是在不知道项目索引的情况下使用getElementsByClassName,然后循环遍历它们,比较值。如果你有两个具有相同值的按钮,那么确定你没有选择。

答案 3 :(得分:1)

为什么不使用容器元素来缩小搜索范围

$('.call-to-action-g1 input.submit')....

如果你在容器中有多个提交,那么使用属性选择器和value,如@Royi所示

答案 4 :(得分:0)

您是否尝试过使用课程:

$('.submit').click();

$('.submit').trigger( "click" );

答案 5 :(得分:0)

fiddle Demo

$('input.submit').filter(function () {
    return $.trim(this.value) == 'Siguiente paso';
}).click(function () {
    alert('hi');
});

<小时/> 点击

$('input.submit').filter(function () {
    return $.trim(this.value) == 'Siguiente paso';
}).click();

答案 6 :(得分:0)

请参阅此fiddle 您仍然可以使用类型!!

捕获事件
$('input').on("click",function(){
// your code here
});

如果您想进一步优化它,那么您可以使用this.value获取clicked元素的值 并在那里有你的代码

$('input').on("click",function(){
alert("Button clicked");
    if(this.value=="Siguiente paso"){
    alert("Siguiente paso clicked");
    }
});

答案 7 :(得分:0)

jquery中有很多选择器,不仅仅是id或name。 像这样:

$('.submit').click();

您还可以看到有关jquery选择器的更多信息:http://api.jquery.com/category/selectors/

答案 8 :(得分:0)

试试这个纯JavaScript解决方案:

document.querySelector(".call-to-action .submit").onclick = function() { 
  alert('bla bla'); 
}