我在页面上有5个div:<div class="cell"></div>
。
我有那些&#39; divs&#39;存储在名为$cell
的变量中...
所以,如果我是console.log($cell
),我得到一个包含这5个div的数组。
如果我控制台.log($cell[2]
)我得到了第三个&#39; ...这一切都在世界上很好。
我的菜鸟问题是:为什么我不能设置 $cell[0].text('Title');
如果我给他们标题,我就不能 <{1}}
我收到错误&#34; $ cell [2] .text不是函数&#34;
如果它有助于我尝试使用来自对象的数据在for循环中设置文本
$cell[0].text();
我尝试使用.html()函数......没有骰子。
任何帮助将不胜感激。提前谢谢!
答案 0 :(得分:0)
因为您正在尝试使用jQuery方法设置DOM对象内容。
相反,使用
create_table "reservation_resource_set_ups", force: :cascade do |t|
t.integer "reservation_id"
t.integer "resource_id"
t.integer "set_up_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["reservation_id"], name: "index_reservation_resource_set_ups_on_reservation_id"
t.index ["resource_id"], name: "index_reservation_resource_set_ups_on_resource_id"
t.index ["set_up_id"], name: "index_reservation_resource_set_ups_on_set_up_id"
end
create_table "reservation_resources", force: :cascade do |t|
t.integer "reservation_id"
t.integer "resource_id"
t.text "comments"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["reservation_id"], name: "index_reservation_resources_on_reservation_id"
t.index ["resource_id"], name: "index_reservation_resources_on_resource_id"
end
create_table "reservations", force: :cascade do |t|
t.string "name"
...
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.index ["end_date"], name: "index_reservations_on_end_date"
t.index ["repeat_end_date"], name: "index_reservations_on_repeat_end_date"
t.index ["start_date"], name: "index_reservations_on_start_date"
end
create_table "resources", force: :cascade do |t|
t.string "name"
t.text "description"
t.string "resource_type"
t.text "location"
t.integer "quantity", default: 1
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "set_ups", force: :cascade do |t|
t.string "name"
t.text "instructions"
t.string "image"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
OR
$cell[0].textContent=""; // [0] is the dom object
但在你的情况下试试
$cell.eq(0).text(""); eq(0) is the jQuery object
使用DOM对象:
$(".cell").each(function(i) {
$(this).text($table[i].name); // $(this) is the current jQuery object
});
答案 1 :(得分:0)
对象$cell
不是常规数组,它是一个恰好支持索引的jQuery对象。但是如果使用$cell[i]
对其进行索引,则结果是DOM对象,而不是jQuery对象,并且DOM对象不知道jQuery .text()
是什么。
可能的解决方法是再次应用$()
,这将有效:
$($cell[i]).text("hello");
另一个同样好的方法是不使用索引,但使用jQuery .eq()
确实返回一个jQuery对象:
$cell.eq(i).text("hello");
答案 2 :(得分:0)
您也可以使用innerHTML
var $cell = $('.cell');
for(var i = 0; i<$cell.length;i++) {
$cell[i].innerHTML = "foo " + i;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>
答案 3 :(得分:0)
有点复杂。您可以使用$ .makeArray()将JQuery对象转换为数组;并使用$()将数组中的每个元素组合成QUery,以便使用text()方法。
$(document).ready(function() {
var cell = $(".cell");
//convert jquery object into array
var arr = $.makeArray(cell);
console.log($(arr[0]).text());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="cell">1</div>
<div class="cell">2</div>
<div class="cell">3</div>
<div class="cell">4</div>
<div class="cell">5</div>