当指定文本在页面上时,Jquery用户单击单选按钮

时间:2018-05-08 19:13:58

标签: javascript jquery input userscripts

我尝试创建一个用于在div中搜索特定文本字符串的用户脚本,如果可用,请单击该特定div中的特定单选按钮。每页通常有多个div,每个div都需要单独处理。我已尝试使用next()和nextAll()的各种脚本,但我还没有接近让它工作。任何帮助将不胜感激。以下是编写目标页面的示例:

<div class="block">
   <div>
      <div class="place">Text to be searched
      </div>
      <div class="place">
         <div id="question">
             <input value="yes">
             <input value="no">
         </div>
      </div>
   </div>
</div>

多次,最多3次。我是javascript / jquery的新手,有没有人可以指点我的方向来获得这样的工作?谢谢!

编辑: 感谢非常有用的评论,我设法让它完全按照我需要的方式工作:

var arr = ['Keyword1', 'Keyword2', 'Keyword3'];
var i=0;
for (; i<arr.length; i++) {
$("div div.place.bg-dark:contains('"+arr[i]+"')").each(function() {
     $(this).nextAll().find('input[type=radio][value=2]').click();
    $(this).parent().parent().css("cssText", "border: 15px solid red !important;");
        });
}

1 个答案:

答案 0 :(得分:1)

使用if过滤掉文本div或问题div,然后使用.filter()查找并标记所需的.next('div.place')按钮。

见下面的演示

&#13;
&#13;
radio
&#13;
var textToSearch = 'Text to be searched';
var valueToCheck='yes';

$(document).ready(function() {
  
  $(".block div.place").filter(function() {
    return $.trim($(this).text()) == textToSearch;
  }).next('div.place').find('input[type="radio"][value="'+valueToCheck+'"]').prop('checked', true);
});
&#13;
&#13;
&#13;