私信  •  关注

freedomn-m

freedomn-m 最近创建的主题
freedomn-m 最近回复了
4 年前
回复了 freedomn-m 创建的主题 » 如何使用jQuery查询任何其他div元素都不包含的div元素?

假设:

我想查询出所有不是 小孩 任何其他部门的

你可以使用选择器

:not(div) > div

可以与jQuery、document一起使用。querySelectorAll或CSS(因此不需要js,这取决于您需要它做什么)

例子:

console.log($("div").length)
console.log($(":not(div) > div").length)
console.log($(":not(div) > div").filter(".shoud_be_in_query").length == $(":not(div) > div").length)
console.log($(":not(div) > div").filter(":not(.shoud_be_in_query)").length == 0)


console.log(document.querySelectorAll(":not(div) > div").length)
:not(div)>div {
  border: 1px solid red;
}

div {
  border: 1px solid blue;
  margin: 2px;
  padding: 2px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="shoud_be_in_query">
  <div> test </div>
</div>
<section>
  <div class="shoud_be_in_query">
    <div> test </div>
  </div>
  <div class="shoud_be_in_query">
    <div> test </div>
  </div>
</section>
<section>
  <section>
    <div class="shoud_be_in_query"> test </div>
  </section>
</section>
4 年前
回复了 freedomn-m 创建的主题 » 在jquery中,可以将所有复选框值转换为逗号分隔的字符串

你可以使用 :checked 选择器和 .map 要获得你的价值观并将其结合起来:

$("#btn").click(() => {

    var chkValue = $(":checked").map((i,e) => e.value).toArray().join(",");
    console.log(chkValue)

});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" id="vehicle1" name="vehicle1" value="Bike">
<label for="vehicle1"> I have a bike</label><br>
<input type="checkbox" id="vehicle2" name="vehicle2" value="Car">
<label for="vehicle2"> I have a car</label><br>
<input type="checkbox" id="vehicle3" name="vehicle3" value="Boat">
<label for="vehicle3"> I have a boat</label><br><br>

<hr/>
<button id=btn>click me</button>

你的台词

$(".hero-text")

将选择所有英雄文本元素。你需要限制被点击的那个。

在事件处理程序中,当使用 function() { , this 是已单击的元素。

所以那条线会变成 $(this).text() -然而,当使用 .text() 它包含了所有的空白,所以如果你的html有任何形式的布局,它会给出一个错误(就像它可能从一开始就出现的那样) \n 因此,当传递给。瓦尔)

相反,使用

var btnCreditsAmount = this.innerText;

更新的代码片段:

$(".btn-amount").each(function() {
  $(this).click(function() {
    var btnCreditsAmount = this.innerText;
    $('#amountInput').val(btnCreditsAmount);
  });
});
.btn-amount {
  min-width: 80px;
  text-align: center;
  padding: 0.5rem;
  border: 1px solid #ccc;
  float: left;
  margin: 5px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: bold;
  background: #f2f4f8;
}

.form-group {
  display: block;
  clear: both;
  width: 360px;
  overflow: hidden;
  position: relative;
}

.input-field {
  width: 100%;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" />



<div class="btn-amount">
  <div class="hero-text">10</div>
</div>

<div class="btn-amount">
  <div class="hero-text">20</div>
</div>

<div class="btn-amount">
  <div class="hero-text">40</div>
</div>

<div class="btn-amount">
  <div class="hero-text">80</div>
</div>

<div class="form-group">
  <input type="number" id="amountInput" class="input-field" placeholder="Amount of credits">
</div>
6 年前
回复了 freedomn-m 创建的主题 » 有没有办法在任何元素上挂接某个jquery函数?

更换现有的鼠标器

全球现有的鼠标事件

可以使用 .off() ,例如

$("*").off("mouseleave");

从所有元素中移除所有mouseleave事件

https://api.jquery.com/off/

6 年前
回复了 freedomn-m 创建的主题 » Jquery图片显示在第一个IMG标签中

目前我找不到代码将图片保存到第一个IMG标记的实际位置。

它保存在这里: document.querySelector('img') 这是第一个img标签。

您可以将该行更改为:

var img = $("<img>").appendTo("#fotosToevoeg")[0];

(标记为jquery)将:

  • $("<img>") 创建新的图像标记
  • .appendTo() 将其添加到具有该ID的标记中
  • [0] 将新的img标记作为新附加的HTML节点返回,这样代码的其余部分就可以正常工作了

允许吗?

当然,这很管用。

取决于你所说的“允许”是什么意思。

  • 是不是让人困惑——也许吧。
  • 它能引起问题吗?

(有很多关于这个的问题或者由这个引起的问题证实了它引起了问题)。

重用变量名(在本例中为“this”)是常见的,并且基于 范围 .

很难判断您是否有bug,因为您实际上需要“.edit”html或“.edit”attr,而不是 div 所以你可以通过复制来消除混乱 this 对于变量:

$(document).on( "click", ".edit", function() {
  var data = {};
  var btn = $(this);  // the button that was clicked

  btn.closest('.row').children('div[name]').each(function() {

    // Do you mean the div or did you really mean the clicked button?
    data[$(this).attr('name')] = $(this).html();  

    var div = $(this);  // the child div

    // clearly not what is desired
    // `btn` variable referring to the outer `this`
    data[div.attr('name')] = btn.html();  

    // intention clear
    data[div.attr('name')] = div.html();  
  });

  $('#result').html(JSON.stringify(data, null, 4));

});

在本例中,它是“清晰的”,因为您不会在所有数据条目上使用btn html(或者您会这样做吗?我不知道你的要求……。所以“不太可能”。

但是,很容易看出,在另一种情况下,你会如何引用被点击的内容。 btn==this 在嵌套的内部 .each .

7 年前
回复了 freedomn-m 创建的主题 » jquery选择多个类并提取数据

从多个类元素中的数据标记中提取数据

使用 .map() 要获取值数组,请执行以下操作: http://api.jquery.com/jquery.map/

var totals = $(".copy19").map(function(i, e) {
    return $(e).data("total");
}).get();

console.log(totals)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a class='copy19' href='#'            
      data-statementid="14"
      data-total="98078"
      data-toggle="modal" 
      data-target="#editmodal">
      Link
</a>

<a class='copy19' href='#'            
      data-statementid="16"
      data-total="78078"
      data-toggle="modal" 
      data-target="#editmodal">
      Link
</a>
7 年前
回复了 freedomn-m 创建的主题 » 在jquery中更改提交按钮的值不起作用

这里的问题是 开发 将按钮改为“更便于移动的外观”—将其包装在一个分区中。

如本文所述: https://stackoverflow.com/a/23071466/2181514

jquery mobile在页面加载时转换表单输入(以及其他内容),使其成为移动友好的版本。通常需要这样做,因为使用jquery移动版的按钮更容易单击。如果您不想这样做,请添加 data-role="none" 属性到您的提交输入。

或者,可以使用jquery通过查找 .contents() 具有 .nodeType==3 :

$('.filter_watch').change(function() {
  $('#filter_submit').val("New text");
  var t = $('#filter_submit').parent().contents().filter(function() {
    return this.nodeType === 3
  });
  for (var i = 0; i < t.length; ++i) {
    if (t[i].data.replace(/[\n\t]/g, "").trim() !== "")
      t[i].data = "New text";
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<select name="brand" class="filter_watch">
  <option>change</option>
  <option>me</option>
</select>

<div>
  Suchen
  <input id="filter_submit" type="submit" value="Suchen">
</div>

(jquery移动类在代码段中删除,以同时显示DIV和按钮文本更改)